|
@@ -1,11 +1,5 @@
|
|
|
-/* LibTomCrypt, modular cryptographic library -- Tom St Denis
|
|
|
- *
|
|
|
- * LibTomCrypt is a library that provides various cryptographic
|
|
|
- * algorithms in a highly modular and flexible manner.
|
|
|
- *
|
|
|
- * The library is free for all purposes without any express
|
|
|
- * guarantee it works.
|
|
|
- */
|
|
|
+/* LibTomCrypt, modular cryptographic library -- Tom St Denis */
|
|
|
+/* SPDX-License-Identifier: Unlicense */
|
|
|
#include "tomcrypt_private.h"
|
|
|
|
|
|
/**
|
|
@@ -1299,7 +1293,7 @@ static const ulong64 des_fp[8][256] = {
|
|
|
static void cookey(const ulong32 *raw1, ulong32 *keyout);
|
|
|
|
|
|
#ifdef LTC_CLEAN_STACK
|
|
|
-static void _deskey(const unsigned char *key, short edf, ulong32 *keyout)
|
|
|
+static void s_deskey(const unsigned char *key, short edf, ulong32 *keyout)
|
|
|
#else
|
|
|
static void deskey(const unsigned char *key, short edf, ulong32 *keyout)
|
|
|
#endif
|
|
@@ -1353,13 +1347,13 @@ static void deskey(const unsigned char *key, short edf, ulong32 *keyout)
|
|
|
#ifdef LTC_CLEAN_STACK
|
|
|
static void deskey(const unsigned char *key, short edf, ulong32 *keyout)
|
|
|
{
|
|
|
- _deskey(key, edf, keyout);
|
|
|
+ s_deskey(key, edf, keyout);
|
|
|
burn_stack(sizeof(int)*5 + sizeof(ulong32)*32 + sizeof(unsigned char)*112);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
#ifdef LTC_CLEAN_STACK
|
|
|
-static void _cookey(const ulong32 *raw1, ulong32 *keyout)
|
|
|
+static void s_cookey(const ulong32 *raw1, ulong32 *keyout)
|
|
|
#else
|
|
|
static void cookey(const ulong32 *raw1, ulong32 *keyout)
|
|
|
#endif
|
|
@@ -1389,7 +1383,7 @@ static void cookey(const ulong32 *raw1, ulong32 *keyout)
|
|
|
#ifdef LTC_CLEAN_STACK
|
|
|
static void cookey(const ulong32 *raw1, ulong32 *keyout)
|
|
|
{
|
|
|
- _cookey(raw1, keyout);
|
|
|
+ s_cookey(raw1, keyout);
|
|
|
burn_stack(sizeof(ulong32 *) * 2 + sizeof(ulong32)*32 + sizeof(int));
|
|
|
}
|
|
|
#endif
|
|
@@ -1397,7 +1391,7 @@ static void cookey(const ulong32 *raw1, ulong32 *keyout)
|
|
|
#ifndef LTC_CLEAN_STACK
|
|
|
static void desfunc(ulong32 *block, const ulong32 *keys)
|
|
|
#else
|
|
|
-static void _desfunc(ulong32 *block, const ulong32 *keys)
|
|
|
+static void s_desfunc(ulong32 *block, const ulong32 *keys)
|
|
|
#endif
|
|
|
{
|
|
|
ulong32 work, right, leftt;
|
|
@@ -1511,7 +1505,7 @@ static void _desfunc(ulong32 *block, const ulong32 *keys)
|
|
|
#ifdef LTC_CLEAN_STACK
|
|
|
static void desfunc(ulong32 *block, const ulong32 *keys)
|
|
|
{
|
|
|
- _desfunc(block, keys);
|
|
|
+ s_desfunc(block, keys);
|
|
|
burn_stack(sizeof(ulong32) * 4 + sizeof(int));
|
|
|
}
|
|
|
#endif
|
|
@@ -1683,243 +1677,208 @@ int des_test(void)
|
|
|
#ifndef LTC_TEST
|
|
|
return CRYPT_NOP;
|
|
|
#else
|
|
|
- int err;
|
|
|
static const struct des_test_case {
|
|
|
- int num, mode; /* mode 1 = encrypt */
|
|
|
unsigned char key[8], txt[8], out[8];
|
|
|
} cases[] = {
|
|
|
- { 1, 1, { 0x10, 0x31, 0x6E, 0x02, 0x8C, 0x8F, 0x3B, 0x4A },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x82, 0xDC, 0xBA, 0xFB, 0xDE, 0xAB, 0x66, 0x02 } },
|
|
|
- { 2, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x95, 0xF8, 0xA5, 0xE5, 0xDD, 0x31, 0xD9, 0x00 },
|
|
|
- { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 3, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0xDD, 0x7F, 0x12, 0x1C, 0xA5, 0x01, 0x56, 0x19 },
|
|
|
- { 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 4, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x2E, 0x86, 0x53, 0x10, 0x4F, 0x38, 0x34, 0xEA },
|
|
|
- { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 5, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x4B, 0xD3, 0x88, 0xFF, 0x6C, 0xD8, 0x1D, 0x4F },
|
|
|
- { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 6, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x20, 0xB9, 0xE7, 0x67, 0xB2, 0xFB, 0x14, 0x56 },
|
|
|
- { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 7, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x55, 0x57, 0x93, 0x80, 0xD7, 0x71, 0x38, 0xEF },
|
|
|
- { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 8, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x6C, 0xC5, 0xDE, 0xFA, 0xAF, 0x04, 0x51, 0x2F },
|
|
|
- { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 9, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x0D, 0x9F, 0x27, 0x9B, 0xA5, 0xD8, 0x72, 0x60 },
|
|
|
- { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- {10, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0xD9, 0x03, 0x1B, 0x02, 0x71, 0xBD, 0x5A, 0x0A },
|
|
|
- { 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
-
|
|
|
- { 1, 0, { 0x10, 0x31, 0x6E, 0x02, 0x8C, 0x8F, 0x3B, 0x4A },
|
|
|
- { 0x82, 0xDC, 0xBA, 0xFB, 0xDE, 0xAB, 0x66, 0x02 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
- { 2, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x95, 0xF8, 0xA5, 0xE5, 0xDD, 0x31, 0xD9, 0x00 } },
|
|
|
- { 3, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xDD, 0x7F, 0x12, 0x1C, 0xA5, 0x01, 0x56, 0x19 } },
|
|
|
- { 4, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x2E, 0x86, 0x53, 0x10, 0x4F, 0x38, 0x34, 0xEA } },
|
|
|
- { 5, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x4B, 0xD3, 0x88, 0xFF, 0x6C, 0xD8, 0x1D, 0x4F } },
|
|
|
- { 6, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x20, 0xB9, 0xE7, 0x67, 0xB2, 0xFB, 0x14, 0x56 } },
|
|
|
- { 7, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x55, 0x57, 0x93, 0x80, 0xD7, 0x71, 0x38, 0xEF } },
|
|
|
- { 8, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x6C, 0xC5, 0xDE, 0xFA, 0xAF, 0x04, 0x51, 0x2F } },
|
|
|
- { 9, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x0D, 0x9F, 0x27, 0x9B, 0xA5, 0xD8, 0x72, 0x60 } },
|
|
|
- {10, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xD9, 0x03, 0x1B, 0x02, 0x71, 0xBD, 0x5A, 0x0A } },
|
|
|
-
|
|
|
-#ifdef LTC_TEST_EXT
|
|
|
- { 0+11, 0, { 0x80, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x95, 0xA8, 0xD7, 0x28, 0x13, 0xDA, 0xA9, 0x4D } },
|
|
|
- { 1+11, 0, { 0x40, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x0E, 0xEC, 0x14, 0x87, 0xDD, 0x8C, 0x26, 0xD5 } },
|
|
|
- { 2+11, 0, { 0x20, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x7A, 0xD1, 0x6F, 0xFB, 0x79, 0xC4, 0x59, 0x26 } },
|
|
|
- { 3+11, 0, { 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xD3, 0x74, 0x62, 0x94, 0xCA, 0x6A, 0x6C, 0xF3 } },
|
|
|
- { 4+11, 0, { 0x08, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x80, 0x9F, 0x5F, 0x87, 0x3C, 0x1F, 0xD7, 0x61 } },
|
|
|
- { 5+11, 0, { 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xC0, 0x2F, 0xAF, 0xFE, 0xC9, 0x89, 0xD1, 0xFC } },
|
|
|
- { 6+11, 0, { 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x46, 0x15, 0xAA, 0x1D, 0x33, 0xE7, 0x2F, 0x10 } },
|
|
|
- { 7+11, 0, { 0x01, 0x80, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x20, 0x55, 0x12, 0x33, 0x50, 0xC0, 0x08, 0x58 } },
|
|
|
- { 8+11, 0, { 0x01, 0x40, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xDF, 0x3B, 0x99, 0xD6, 0x57, 0x73, 0x97, 0xC8 } },
|
|
|
- { 9+11, 0, { 0x01, 0x20, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x31, 0xFE, 0x17, 0x36, 0x9B, 0x52, 0x88, 0xC9 } },
|
|
|
- {10+11, 0, { 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xDF, 0xDD, 0x3C, 0xC6, 0x4D, 0xAE, 0x16, 0x42 } },
|
|
|
- {11+11, 0, { 0x01, 0x08, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x17, 0x8C, 0x83, 0xCE, 0x2B, 0x39, 0x9D, 0x94 } },
|
|
|
- {12+11, 0, { 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x50, 0xF6, 0x36, 0x32, 0x4A, 0x9B, 0x7F, 0x80 } },
|
|
|
- {13+11, 0, { 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xA8, 0x46, 0x8E, 0xE3, 0xBC, 0x18, 0xF0, 0x6D } },
|
|
|
- {14+11, 0, { 0x01, 0x01, 0x80, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xA2, 0xDC, 0x9E, 0x92, 0xFD, 0x3C, 0xDE, 0x92 } },
|
|
|
- {15+11, 0, { 0x01, 0x01, 0x40, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xCA, 0xC0, 0x9F, 0x79, 0x7D, 0x03, 0x12, 0x87 } },
|
|
|
- {16+11, 0, { 0x01, 0x01, 0x20, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x90, 0xBA, 0x68, 0x0B, 0x22, 0xAE, 0xB5, 0x25 } },
|
|
|
- {17+11, 0, { 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xCE, 0x7A, 0x24, 0xF3, 0x50, 0xE2, 0x80, 0xB6 } },
|
|
|
- {18+11, 0, { 0x01, 0x01, 0x08, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x88, 0x2B, 0xFF, 0x0A, 0xA0, 0x1A, 0x0B, 0x87 } },
|
|
|
- {19+11, 0, { 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x25, 0x61, 0x02, 0x88, 0x92, 0x45, 0x11, 0xC2 } },
|
|
|
- {20+11, 0, { 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xC7, 0x15, 0x16, 0xC2, 0x9C, 0x75, 0xD1, 0x70 } },
|
|
|
- {21+11, 0, { 0x01, 0x01, 0x01, 0x80, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x51, 0x99, 0xC2, 0x9A, 0x52, 0xC9, 0xF0, 0x59 } },
|
|
|
- {22+11, 0, { 0x01, 0x01, 0x01, 0x40, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xC2, 0x2F, 0x0A, 0x29, 0x4A, 0x71, 0xF2, 0x9F } },
|
|
|
- {23+11, 0, { 0x01, 0x01, 0x01, 0x20, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xEE, 0x37, 0x14, 0x83, 0x71, 0x4C, 0x02, 0xEA } },
|
|
|
- {24+11, 0, { 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xA8, 0x1F, 0xBD, 0x44, 0x8F, 0x9E, 0x52, 0x2F } },
|
|
|
- {25+11, 0, { 0x01, 0x01, 0x01, 0x08, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x4F, 0x64, 0x4C, 0x92, 0xE1, 0x92, 0xDF, 0xED } },
|
|
|
- {26+11, 0, { 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x1A, 0xFA, 0x9A, 0x66, 0xA6, 0xDF, 0x92, 0xAE } },
|
|
|
- {27+11, 0, { 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xB3, 0xC1, 0xCC, 0x71, 0x5C, 0xB8, 0x79, 0xD8 } },
|
|
|
- {28+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x80, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x19, 0xD0, 0x32, 0xE6, 0x4A, 0xB0, 0xBD, 0x8B } },
|
|
|
- {29+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x40, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x3C, 0xFA, 0xA7, 0xA7, 0xDC, 0x87, 0x20, 0xDC } },
|
|
|
- {30+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x20, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xB7, 0x26, 0x5F, 0x7F, 0x44, 0x7A, 0xC6, 0xF3 } },
|
|
|
- {31+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x9D, 0xB7, 0x3B, 0x3C, 0x0D, 0x16, 0x3F, 0x54 } },
|
|
|
- {32+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x08, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x81, 0x81, 0xB6, 0x5B, 0xAB, 0xF4, 0xA9, 0x75 } },
|
|
|
- {33+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x93, 0xC9, 0xB6, 0x40, 0x42, 0xEA, 0xA2, 0x40 } },
|
|
|
- {34+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x55, 0x70, 0x53, 0x08, 0x29, 0x70, 0x55, 0x92 } },
|
|
|
- {35+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x86, 0x38, 0x80, 0x9E, 0x87, 0x87, 0x87, 0xA0 } },
|
|
|
- {36+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x40, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x41, 0xB9, 0xA7, 0x9A, 0xF7, 0x9A, 0xC2, 0x08 } },
|
|
|
- {37+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x20, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x7A, 0x9B, 0xE4, 0x2F, 0x20, 0x09, 0xA8, 0x92 } },
|
|
|
- {38+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x29, 0x03, 0x8D, 0x56, 0xBA, 0x6D, 0x27, 0x45 } },
|
|
|
- {39+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x54, 0x95, 0xC6, 0xAB, 0xF1, 0xE5, 0xDF, 0x51 } },
|
|
|
- {40+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xAE, 0x13, 0xDB, 0xD5, 0x61, 0x48, 0x89, 0x33 } },
|
|
|
- {41+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x02, 0x4D, 0x1F, 0xFA, 0x89, 0x04, 0xE3, 0x89 } },
|
|
|
- {42+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xD1, 0x39, 0x97, 0x12, 0xF9, 0x9B, 0xF0, 0x2E } },
|
|
|
- {43+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x40, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x14, 0xC1, 0xD7, 0xC1, 0xCF, 0xFE, 0xC7, 0x9E } },
|
|
|
- {44+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x20, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x1D, 0xE5, 0x27, 0x9D, 0xAE, 0x3B, 0xED, 0x6F } },
|
|
|
- {45+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xE9, 0x41, 0xA3, 0x3F, 0x85, 0x50, 0x13, 0x03 } },
|
|
|
- {46+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xDA, 0x99, 0xDB, 0xBC, 0x9A, 0x03, 0xF3, 0x79 } },
|
|
|
- {47+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xB7, 0xFC, 0x92, 0xF9, 0x1D, 0x8E, 0x92, 0xE9 } },
|
|
|
- {48+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xAE, 0x8E, 0x5C, 0xAA, 0x3C, 0xA0, 0x4E, 0x85 } },
|
|
|
- {49+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x9C, 0xC6, 0x2D, 0xF4, 0x3B, 0x6E, 0xED, 0x74 } },
|
|
|
- {50+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x40 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xD8, 0x63, 0xDB, 0xB5, 0xC5, 0x9A, 0x91, 0xA0 } },
|
|
|
- {51+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x20 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xA1, 0xAB, 0x21, 0x90, 0x54, 0x5B, 0x91, 0xD7 } },
|
|
|
- {52+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x08, 0x75, 0x04, 0x1E, 0x64, 0xC5, 0x70, 0xF7 } },
|
|
|
- {53+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x5A, 0x59, 0x45, 0x28, 0xBE, 0xBE, 0xF1, 0xCC } },
|
|
|
- {54+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0xFC, 0xDB, 0x32, 0x91, 0xDE, 0x21, 0xF0, 0xC0 } },
|
|
|
- {55+11, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02 },
|
|
|
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
- { 0x86, 0x9E, 0xFD, 0x7F, 0x9F, 0x26, 0x5A, 0x09 } },
|
|
|
-#endif /* LTC_TEST_EXT */
|
|
|
+ { { 0x10, 0x31, 0x6E, 0x02, 0x8C, 0x8F, 0x3B, 0x4A },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x82, 0xDC, 0xBA, 0xFB, 0xDE, 0xAB, 0x66, 0x02 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x95, 0xF8, 0xA5, 0xE5, 0xDD, 0x31, 0xD9, 0x00 },
|
|
|
+ { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0xDD, 0x7F, 0x12, 0x1C, 0xA5, 0x01, 0x56, 0x19 },
|
|
|
+ { 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x2E, 0x86, 0x53, 0x10, 0x4F, 0x38, 0x34, 0xEA },
|
|
|
+ { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x4B, 0xD3, 0x88, 0xFF, 0x6C, 0xD8, 0x1D, 0x4F },
|
|
|
+ { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x20, 0xB9, 0xE7, 0x67, 0xB2, 0xFB, 0x14, 0x56 },
|
|
|
+ { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x55, 0x57, 0x93, 0x80, 0xD7, 0x71, 0x38, 0xEF },
|
|
|
+ { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x6C, 0xC5, 0xDE, 0xFA, 0xAF, 0x04, 0x51, 0x2F },
|
|
|
+ { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x0D, 0x9F, 0x27, 0x9B, 0xA5, 0xD8, 0x72, 0x60 },
|
|
|
+ { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0xD9, 0x03, 0x1B, 0x02, 0x71, 0xBD, 0x5A, 0x0A },
|
|
|
+ { 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+
|
|
|
+ { { 0x80, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x95, 0xA8, 0xD7, 0x28, 0x13, 0xDA, 0xA9, 0x4D } },
|
|
|
+ { { 0x40, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x0E, 0xEC, 0x14, 0x87, 0xDD, 0x8C, 0x26, 0xD5 } },
|
|
|
+ { { 0x20, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x7A, 0xD1, 0x6F, 0xFB, 0x79, 0xC4, 0x59, 0x26 } },
|
|
|
+ { { 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xD3, 0x74, 0x62, 0x94, 0xCA, 0x6A, 0x6C, 0xF3 } },
|
|
|
+ { { 0x08, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x80, 0x9F, 0x5F, 0x87, 0x3C, 0x1F, 0xD7, 0x61 } },
|
|
|
+ { { 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xC0, 0x2F, 0xAF, 0xFE, 0xC9, 0x89, 0xD1, 0xFC } },
|
|
|
+ { { 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x46, 0x15, 0xAA, 0x1D, 0x33, 0xE7, 0x2F, 0x10 } },
|
|
|
+ { { 0x01, 0x80, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x20, 0x55, 0x12, 0x33, 0x50, 0xC0, 0x08, 0x58 } },
|
|
|
+ { { 0x01, 0x40, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xDF, 0x3B, 0x99, 0xD6, 0x57, 0x73, 0x97, 0xC8 } },
|
|
|
+ { { 0x01, 0x20, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x31, 0xFE, 0x17, 0x36, 0x9B, 0x52, 0x88, 0xC9 } },
|
|
|
+ { { 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xDF, 0xDD, 0x3C, 0xC6, 0x4D, 0xAE, 0x16, 0x42 } },
|
|
|
+ { { 0x01, 0x08, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x17, 0x8C, 0x83, 0xCE, 0x2B, 0x39, 0x9D, 0x94 } },
|
|
|
+ { { 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x50, 0xF6, 0x36, 0x32, 0x4A, 0x9B, 0x7F, 0x80 } },
|
|
|
+ { { 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xA8, 0x46, 0x8E, 0xE3, 0xBC, 0x18, 0xF0, 0x6D } },
|
|
|
+ { { 0x01, 0x01, 0x80, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xA2, 0xDC, 0x9E, 0x92, 0xFD, 0x3C, 0xDE, 0x92 } },
|
|
|
+ { { 0x01, 0x01, 0x40, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xCA, 0xC0, 0x9F, 0x79, 0x7D, 0x03, 0x12, 0x87 } },
|
|
|
+ { { 0x01, 0x01, 0x20, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x90, 0xBA, 0x68, 0x0B, 0x22, 0xAE, 0xB5, 0x25 } },
|
|
|
+ { { 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xCE, 0x7A, 0x24, 0xF3, 0x50, 0xE2, 0x80, 0xB6 } },
|
|
|
+ { { 0x01, 0x01, 0x08, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x88, 0x2B, 0xFF, 0x0A, 0xA0, 0x1A, 0x0B, 0x87 } },
|
|
|
+ { { 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x25, 0x61, 0x02, 0x88, 0x92, 0x45, 0x11, 0xC2 } },
|
|
|
+ { { 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xC7, 0x15, 0x16, 0xC2, 0x9C, 0x75, 0xD1, 0x70 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x80, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x51, 0x99, 0xC2, 0x9A, 0x52, 0xC9, 0xF0, 0x59 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x40, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xC2, 0x2F, 0x0A, 0x29, 0x4A, 0x71, 0xF2, 0x9F } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x20, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xEE, 0x37, 0x14, 0x83, 0x71, 0x4C, 0x02, 0xEA } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xA8, 0x1F, 0xBD, 0x44, 0x8F, 0x9E, 0x52, 0x2F } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x08, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x4F, 0x64, 0x4C, 0x92, 0xE1, 0x92, 0xDF, 0xED } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x1A, 0xFA, 0x9A, 0x66, 0xA6, 0xDF, 0x92, 0xAE } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xB3, 0xC1, 0xCC, 0x71, 0x5C, 0xB8, 0x79, 0xD8 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x80, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x19, 0xD0, 0x32, 0xE6, 0x4A, 0xB0, 0xBD, 0x8B } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x40, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x3C, 0xFA, 0xA7, 0xA7, 0xDC, 0x87, 0x20, 0xDC } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x20, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xB7, 0x26, 0x5F, 0x7F, 0x44, 0x7A, 0xC6, 0xF3 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x9D, 0xB7, 0x3B, 0x3C, 0x0D, 0x16, 0x3F, 0x54 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x08, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x81, 0x81, 0xB6, 0x5B, 0xAB, 0xF4, 0xA9, 0x75 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x93, 0xC9, 0xB6, 0x40, 0x42, 0xEA, 0xA2, 0x40 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x55, 0x70, 0x53, 0x08, 0x29, 0x70, 0x55, 0x92 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x86, 0x38, 0x80, 0x9E, 0x87, 0x87, 0x87, 0xA0 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x40, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x41, 0xB9, 0xA7, 0x9A, 0xF7, 0x9A, 0xC2, 0x08 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x20, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x7A, 0x9B, 0xE4, 0x2F, 0x20, 0x09, 0xA8, 0x92 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x29, 0x03, 0x8D, 0x56, 0xBA, 0x6D, 0x27, 0x45 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x54, 0x95, 0xC6, 0xAB, 0xF1, 0xE5, 0xDF, 0x51 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xAE, 0x13, 0xDB, 0xD5, 0x61, 0x48, 0x89, 0x33 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x02, 0x4D, 0x1F, 0xFA, 0x89, 0x04, 0xE3, 0x89 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xD1, 0x39, 0x97, 0x12, 0xF9, 0x9B, 0xF0, 0x2E } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x40, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x14, 0xC1, 0xD7, 0xC1, 0xCF, 0xFE, 0xC7, 0x9E } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x20, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x1D, 0xE5, 0x27, 0x9D, 0xAE, 0x3B, 0xED, 0x6F } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xE9, 0x41, 0xA3, 0x3F, 0x85, 0x50, 0x13, 0x03 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xDA, 0x99, 0xDB, 0xBC, 0x9A, 0x03, 0xF3, 0x79 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xB7, 0xFC, 0x92, 0xF9, 0x1D, 0x8E, 0x92, 0xE9 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xAE, 0x8E, 0x5C, 0xAA, 0x3C, 0xA0, 0x4E, 0x85 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x9C, 0xC6, 0x2D, 0xF4, 0x3B, 0x6E, 0xED, 0x74 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x40 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xD8, 0x63, 0xDB, 0xB5, 0xC5, 0x9A, 0x91, 0xA0 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x20 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xA1, 0xAB, 0x21, 0x90, 0x54, 0x5B, 0x91, 0xD7 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x08, 0x75, 0x04, 0x1E, 0x64, 0xC5, 0x70, 0xF7 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x5A, 0x59, 0x45, 0x28, 0xBE, 0xBE, 0xF1, 0xCC } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xFC, 0xDB, 0x32, 0x91, 0xDE, 0x21, 0xF0, 0xC0 } },
|
|
|
+ { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x86, 0x9E, 0xFD, 0x7F, 0x9F, 0x26, 0x5A, 0x09 } },
|
|
|
|
|
|
/*** more test cases you could add if you are not convinced (the above test cases aren't really too good):
|
|
|
|
|
@@ -1962,30 +1921,43 @@ int des_test(void)
|
|
|
http://www.ecs.soton.ac.uk/~prw99r/ez438/vectors.txt
|
|
|
***/
|
|
|
};
|
|
|
- int i, y;
|
|
|
- unsigned char tmp[8];
|
|
|
- symmetric_key des;
|
|
|
+ unsigned char key[8], pt[8], ct[8], tmp[8];
|
|
|
+ symmetric_key skey;
|
|
|
+ int i, err;
|
|
|
|
|
|
- for(i=0; i < (int)(sizeof(cases)/sizeof(cases[0])); i++)
|
|
|
+ for (i = 0; i < (int)(sizeof(cases)/sizeof(cases[0])); i++)
|
|
|
{
|
|
|
- if ((err = des_setup(cases[i].key, 8, 0, &des)) != CRYPT_OK) {
|
|
|
- return err;
|
|
|
+ if ((err = des_setup(cases[i].key, 8, 0, &skey)) != CRYPT_OK) {
|
|
|
+ return err;
|
|
|
}
|
|
|
- if (cases[i].mode != 0) {
|
|
|
- des_ecb_encrypt(cases[i].txt, tmp, &des);
|
|
|
- } else {
|
|
|
- des_ecb_decrypt(cases[i].txt, tmp, &des);
|
|
|
+
|
|
|
+ des_ecb_encrypt(cases[i].txt, ct, &skey);
|
|
|
+
|
|
|
+ if (compare_testvector(ct, sizeof(ct), cases[i].out, 8, "DES Encrypt", i) != 0) {
|
|
|
+ return CRYPT_FAIL_TESTVECTOR;
|
|
|
}
|
|
|
|
|
|
- if (compare_testvector(cases[i].out, sizeof(tmp), tmp, sizeof(tmp), "DES", i) != 0) {
|
|
|
- return CRYPT_FAIL_TESTVECTOR;
|
|
|
+ des_ecb_decrypt(ct, pt, &skey);
|
|
|
+
|
|
|
+ if (compare_testvector(pt, sizeof(pt), cases[i].txt, 8, "DES Decrypt", i) != 0) {
|
|
|
+ return CRYPT_FAIL_TESTVECTOR;
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ /* See if we can encrypt all zero bytes 1000 times, decrypt and come back to where we started */
|
|
|
|
|
|
- /* now see if we can encrypt all zero bytes 1000 times, decrypt and come back where we started */
|
|
|
- for (y = 0; y < 8; y++) tmp[y] = 0;
|
|
|
- for (y = 0; y < 1000; y++) des_ecb_encrypt(tmp, tmp, &des);
|
|
|
- for (y = 0; y < 1000; y++) des_ecb_decrypt(tmp, tmp, &des);
|
|
|
- for (y = 0; y < 8; y++) if (tmp[y] != 0) return CRYPT_FAIL_TESTVECTOR;
|
|
|
+ for (i = 0; i < 8; i++) key[i] = i;
|
|
|
+
|
|
|
+ if ((err = des_setup(key, 8, 0, &skey)) != CRYPT_OK) {
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (i = 0; i < 8; i++) pt[i] = tmp[i] = 0;
|
|
|
+ for (i = 0; i < 1000; i++) des_ecb_encrypt(tmp, tmp, &skey);
|
|
|
+ for (i = 0; i < 1000; i++) des_ecb_decrypt(tmp, tmp, &skey);
|
|
|
+
|
|
|
+ if (compare_testvector(tmp, 8, pt, 8, "DES", 0) != 0) {
|
|
|
+ return CRYPT_FAIL_TESTVECTOR;
|
|
|
}
|
|
|
|
|
|
return CRYPT_OK;
|
|
@@ -1997,34 +1969,72 @@ int des3_test(void)
|
|
|
#ifndef LTC_TEST
|
|
|
return CRYPT_NOP;
|
|
|
#else
|
|
|
- unsigned char key[24], pt[8], ct[8], tmp[8];
|
|
|
- symmetric_key skey;
|
|
|
- int x, err;
|
|
|
+ static const struct des3_test_case {
|
|
|
+ unsigned char key[16], txt[8], out[8];
|
|
|
+ } cases[] = {
|
|
|
+ /*
|
|
|
+ https://www.cosic.esat.kuleuven.be/nessie/testvectors/bc/des/Triple-Des-2-Key-128-64.unverified.test-vectors
|
|
|
+ */
|
|
|
+ { { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xFA, 0xFD, 0x50, 0x84, 0x37, 0x4F, 0xCE, 0x34 } },
|
|
|
+ { { 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x60, 0xCC, 0x37, 0xB7, 0xB5, 0x37, 0xA1, 0xDC } },
|
|
|
+ { { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xBE, 0x3E, 0x73, 0x04, 0xFE, 0x92, 0xC2, 0xBC } },
|
|
|
+ { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 },
|
|
|
+ { 0xE5, 0xA9, 0xE3, 0x80, 0x03, 0xA5, 0xA0, 0xFD },
|
|
|
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
|
|
|
+ { { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F },
|
|
|
+ { 0xE4, 0xFC, 0x19, 0xD6, 0x94, 0x63, 0xB7, 0x83 },
|
|
|
+ { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 } },
|
|
|
+ };
|
|
|
+ unsigned char key[24], pt[8], ct[8], tmp[8];
|
|
|
+ symmetric_key skey;
|
|
|
+ int i, err;
|
|
|
|
|
|
- if ((err = des_test()) != CRYPT_OK) {
|
|
|
- return err;
|
|
|
- }
|
|
|
+ if ((err = des_test()) != CRYPT_OK) {
|
|
|
+ return err;
|
|
|
+ }
|
|
|
|
|
|
- for (x = 0; x < 8; x++) {
|
|
|
- pt[x] = x;
|
|
|
- }
|
|
|
+ for (i = 0; i < (int)(sizeof(cases)/sizeof(cases[0])); i++)
|
|
|
+ {
|
|
|
+ if ((err = des3_setup(cases[i].key, 16, 0, &skey)) != CRYPT_OK) {
|
|
|
+ return err;
|
|
|
+ }
|
|
|
|
|
|
- for (x = 0; x < 24; x++) {
|
|
|
- key[x] = x;
|
|
|
- }
|
|
|
+ des3_ecb_encrypt(cases[i].txt, ct, &skey);
|
|
|
|
|
|
- if ((err = des3_setup(key, 24, 0, &skey)) != CRYPT_OK) {
|
|
|
- return err;
|
|
|
- }
|
|
|
+ if (compare_testvector(ct, sizeof(ct), cases[i].out, 8, "3DES Encrypt", i) != 0) {
|
|
|
+ return CRYPT_FAIL_TESTVECTOR;
|
|
|
+ }
|
|
|
|
|
|
- des3_ecb_encrypt(pt, ct, &skey);
|
|
|
- des3_ecb_decrypt(ct, tmp, &skey);
|
|
|
+ des3_ecb_decrypt(ct, pt, &skey);
|
|
|
|
|
|
- if (compare_testvector(pt, 8, tmp, 8, "3DES", 0) != 0) {
|
|
|
- return CRYPT_FAIL_TESTVECTOR;
|
|
|
- }
|
|
|
+ if (compare_testvector(pt, sizeof(pt), cases[i].txt, 8, "3DES Decrypt", i) != 0) {
|
|
|
+ return CRYPT_FAIL_TESTVECTOR;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /* See if we can encrypt all zero bytes 1000 times, decrypt and come back to where we started */
|
|
|
|
|
|
- return CRYPT_OK;
|
|
|
+ for (i = 0; i < 24; i++) key[i] = i;
|
|
|
+
|
|
|
+ if ((err = des3_setup(key, 24, 0, &skey)) != CRYPT_OK) {
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (i = 0; i < 8; i++) pt[i] = tmp[i] = 0;
|
|
|
+ for (i = 0; i < 1000; i++) des3_ecb_encrypt(tmp, tmp, &skey);
|
|
|
+ for (i = 0; i < 1000; i++) des3_ecb_decrypt(tmp, tmp, &skey);
|
|
|
+
|
|
|
+ if (compare_testvector(tmp, 8, pt, 8, "3DES", 0) != 0) {
|
|
|
+ return CRYPT_FAIL_TESTVECTOR;
|
|
|
+ }
|
|
|
+
|
|
|
+ return CRYPT_OK;
|
|
|
#endif
|
|
|
}
|
|
|
|
|
@@ -2081,7 +2091,3 @@ int des3_keysize(int *keysize)
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-
|
|
|
-/* ref: HEAD -> develop */
|
|
|
-/* git commit: a1f6312416ef6cd183ee62db58b640dc2d7ec1f4 */
|
|
|
-/* commit time: 2019-09-04 13:44:47 +0200 */
|