diff --git a/.gitignore b/.gitignore index b3350c6e6..af0953d99 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ tmp/ local.properties .settings/ .loadpath +*.orig # Eclipse Core .project diff --git a/CMakeLists.txt b/CMakeLists.txt index 50a824d70..a0a8cb68e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,10 +2,10 @@ cmake_minimum_required(VERSION 3.1.0) project (cryptoauthlib C) # Set the current release version -set(VERSION "3.6.1") +set(VERSION "3.7.0") set(VERSION_MAJOR 3) -set(VERSION_MINOR 6) -set(VERSION_PATCH 1) +set(VERSION_MINOR 7) +set(VERSION_PATCH 0) # Build Options option(BUILD_TESTS "Create Test Application with library" OFF) diff --git a/SECURITY.md b/SECURITY.md index a9d4215df..084dbf881 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -12,7 +12,8 @@ The previous API version is maintained for a year after a new version is release | Version | Supported | Notes | | ------- | ------------------ | ----- | -| 3.6.x | :heavy_check_mark: | | +| 3.7.x | :heavy_check_mark: | | +| 3.6.x | :heavy_check_mark: | Support Ends September 8 2024 | | 3.5.x | :heavy_check_mark: | Support Ends April 4 2024 | | 3.4.x | :heavy_check_mark: | Support Ends March 14 2024 | | 3.3.x | :x: | | diff --git a/app/pkcs11/README.md b/app/pkcs11/README.md index 5480dd965..61ad390e7 100644 --- a/app/pkcs11/README.md +++ b/app/pkcs11/README.md @@ -78,14 +78,14 @@ provider. These instructions are for commonly available Linux systems with packa * Get the latest version of cryptoauthlib with PKCS11 support ```bash - $ git clone --single-branch -b pkcs11 https://github.com/MicrochipTech/cryptoauthlib + $ git clone https://github.com/MicrochipTech/cryptoauthlib ``` * Rerun the build configuration tools: ```bash $ cd cryptoauthlib - $ cmake . + $ cmake -DATCA_PKCS11=ON . ``` * Build the library: @@ -344,4 +344,3 @@ $ p11tool --provider=/usr/lib/libcryptoauth.so f1:02:21:00:87:ea:7e:78:20:b5:c0:a2:5b:6d:71:2c:0c:da: 6e:bf:00:e2:61:f2:7c:82:10:d6:87:d8:06:0f:10:3b:d8:d9 ``` - diff --git a/app/pkcs11/example_cert_chain.c b/app/pkcs11/example_cert_chain.c index 2cb4f64bf..ff7a798d3 100644 --- a/app/pkcs11/example_cert_chain.c +++ b/app/pkcs11/example_cert_chain.c @@ -1,4 +1,3 @@ - #include "atcacert/atcacert_def.h" #include "example_cert_chain.h" @@ -56,35 +55,35 @@ const atcacert_cert_element_t g_cert_elements_1_signer[] = { }; const uint8_t g_cert_template_1_signer[] = { - 0x30, 0x82, 0x01, 0xc8, 0x30, 0x82, 0x01, 0x6e, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x57, - 0x06, 0x2e, 0xf0, 0x05, 0xea, 0x8a, 0x70, 0x44, 0xff, 0x1b, 0x90, 0x00, 0x21, 0x78, 0xd6, 0x30, - 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x30, 0x31, 0x14, 0x30, - 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, - 0x49, 0x6e, 0x63, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0f, 0x45, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, - 0x0d, 0x31, 0x37, 0x30, 0x36, 0x30, 0x37, 0x31, 0x37, 0x35, 0x36, 0x31, 0x32, 0x5a, 0x17, 0x0d, - 0x32, 0x37, 0x30, 0x36, 0x30, 0x37, 0x31, 0x37, 0x35, 0x36, 0x31, 0x32, 0x5a, 0x30, 0x34, 0x31, - 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, - 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x20, 0x46, - 0x46, 0x46, 0x46, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, - 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xb1, 0xf5, - 0x9c, 0xbe, 0x22, 0x11, 0x7f, 0x28, 0x2f, 0x7f, 0x2e, 0xcb, 0xa2, 0x8c, 0x30, 0x3b, 0xae, 0x59, - 0x45, 0xb9, 0x5c, 0x0e, 0xba, 0xaa, 0x9b, 0x81, 0x73, 0x52, 0x63, 0x41, 0xbf, 0x37, 0x3c, 0x2e, - 0xdd, 0xcd, 0xea, 0x0e, 0x7c, 0x9d, 0x90, 0xea, 0x25, 0x9c, 0x64, 0xeb, 0xc6, 0x54, 0x47, 0x32, - 0x81, 0x63, 0xbf, 0x42, 0x5f, 0xdd, 0x5a, 0x3f, 0xd5, 0x71, 0x81, 0x9b, 0x77, 0x44, 0xa3, 0x66, - 0x30, 0x64, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, - 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, - 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, - 0x14, 0x81, 0x1d, 0xc6, 0x7c, 0x0f, 0x18, 0x2b, 0x65, 0x96, 0xeb, 0x22, 0x73, 0xdb, 0xf3, 0x23, - 0x63, 0x6d, 0x79, 0x0f, 0xc8, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, - 0x80, 0x14, 0xdb, 0x2a, 0x0d, 0x06, 0x05, 0xc7, 0x98, 0xbc, 0xda, 0xc0, 0x34, 0x67, 0x66, 0xf4, - 0xe2, 0xb0, 0x61, 0xa3, 0xd2, 0xc8, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, - 0x03, 0x02, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x20, 0x49, 0xfe, 0xdf, 0xc9, 0x94, 0xe3, 0x07, - 0xdb, 0x08, 0xb3, 0x99, 0x9e, 0x04, 0xe4, 0x78, 0xe5, 0xf8, 0xb9, 0x09, 0xa9, 0xf0, 0x41, 0x66, - 0xc6, 0x69, 0x1b, 0x87, 0x30, 0x86, 0x10, 0xaf, 0x64, 0x02, 0x21, 0x00, 0xc8, 0xd6, 0x86, 0x61, - 0x94, 0x95, 0xdb, 0x45, 0xb3, 0x40, 0x8e, 0xac, 0x14, 0x9a, 0x19, 0xb6, 0x8c, 0x5c, 0x79, 0x9d, - 0x06, 0xcb, 0x52, 0x08, 0xa0, 0x1f, 0x49, 0x8b, 0x22, 0x4e, 0x52, 0x71 + 0x30, 0x82, 0x01, 0xc8, 0x30, 0x82, 0x01, 0x6e, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x57, + 0x06, 0x2e, 0xf0, 0x05, 0xea, 0x8a, 0x70, 0x44, 0xff, 0x1b, 0x90, 0x00, 0x21, 0x78, 0xd6, 0x30, + 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x30, 0x31, 0x14, 0x30, + 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, + 0x49, 0x6e, 0x63, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0f, 0x45, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, + 0x0d, 0x31, 0x37, 0x30, 0x36, 0x30, 0x37, 0x31, 0x37, 0x35, 0x36, 0x31, 0x32, 0x5a, 0x17, 0x0d, + 0x32, 0x37, 0x30, 0x36, 0x30, 0x37, 0x31, 0x37, 0x35, 0x36, 0x31, 0x32, 0x5a, 0x30, 0x34, 0x31, + 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x20, 0x46, + 0x46, 0x46, 0x46, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, + 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xb1, 0xf5, + 0x9c, 0xbe, 0x22, 0x11, 0x7f, 0x28, 0x2f, 0x7f, 0x2e, 0xcb, 0xa2, 0x8c, 0x30, 0x3b, 0xae, 0x59, + 0x45, 0xb9, 0x5c, 0x0e, 0xba, 0xaa, 0x9b, 0x81, 0x73, 0x52, 0x63, 0x41, 0xbf, 0x37, 0x3c, 0x2e, + 0xdd, 0xcd, 0xea, 0x0e, 0x7c, 0x9d, 0x90, 0xea, 0x25, 0x9c, 0x64, 0xeb, 0xc6, 0x54, 0x47, 0x32, + 0x81, 0x63, 0xbf, 0x42, 0x5f, 0xdd, 0x5a, 0x3f, 0xd5, 0x71, 0x81, 0x9b, 0x77, 0x44, 0xa3, 0x66, + 0x30, 0x64, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, + 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, + 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, + 0x14, 0x81, 0x1d, 0xc6, 0x7c, 0x0f, 0x18, 0x2b, 0x65, 0x96, 0xeb, 0x22, 0x73, 0xdb, 0xf3, 0x23, + 0x63, 0x6d, 0x79, 0x0f, 0xc8, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, + 0x80, 0x14, 0xdb, 0x2a, 0x0d, 0x06, 0x05, 0xc7, 0x98, 0xbc, 0xda, 0xc0, 0x34, 0x67, 0x66, 0xf4, + 0xe2, 0xb0, 0x61, 0xa3, 0xd2, 0xc8, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, + 0x03, 0x02, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x20, 0x49, 0xfe, 0xdf, 0xc9, 0x94, 0xe3, 0x07, + 0xdb, 0x08, 0xb3, 0x99, 0x9e, 0x04, 0xe4, 0x78, 0xe5, 0xf8, 0xb9, 0x09, 0xa9, 0xf0, 0x41, 0x66, + 0xc6, 0x69, 0x1b, 0x87, 0x30, 0x86, 0x10, 0xaf, 0x64, 0x02, 0x21, 0x00, 0xc8, 0xd6, 0x86, 0x61, + 0x94, 0x95, 0xdb, 0x45, 0xb3, 0x40, 0x8e, 0xac, 0x14, 0x9a, 0x19, 0xb6, 0x8c, 0x5c, 0x79, 0x9d, + 0x06, 0xcb, 0x52, 0x08, 0xa0, 0x1f, 0x49, 0x8b, 0x22, 0x4e, 0x52, 0x71 }; const atcacert_def_t g_cert_def_1_signer = { @@ -163,32 +162,32 @@ const atcacert_def_t g_cert_def_1_signer = { }; const uint8_t g_cert_template_2_device[] = { - 0x30, 0x82, 0x01, 0xa6, 0x30, 0x82, 0x01, 0x4b, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x41, - 0xa6, 0x8b, 0xe4, 0x36, 0xdd, 0xc3, 0xd8, 0x39, 0xfa, 0xbd, 0xd7, 0x27, 0xd9, 0x74, 0xe7, 0x30, - 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x34, 0x31, 0x14, 0x30, - 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, - 0x49, 0x6e, 0x63, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, 0x45, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x20, 0x46, 0x46, 0x46, - 0x46, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x37, 0x31, 0x30, 0x32, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x5a, 0x18, 0x0f, 0x33, 0x30, 0x30, 0x30, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, - 0x35, 0x39, 0x5a, 0x30, 0x2f, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, - 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x17, 0x30, 0x15, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, - 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x96, - 0x27, 0xf1, 0x3e, 0x80, 0xac, 0xf9, 0xd4, 0x12, 0xce, 0x3b, 0x0d, 0x68, 0xf7, 0x4e, 0xb2, 0xc6, - 0x07, 0x35, 0x00, 0xb7, 0x78, 0x5b, 0xac, 0xe6, 0x50, 0x30, 0x54, 0x77, 0x7f, 0xc8, 0x62, 0x21, - 0xce, 0xf2, 0x5a, 0x9a, 0x9e, 0x86, 0x40, 0xc2, 0x29, 0xd6, 0x4a, 0x32, 0x1e, 0xb9, 0x4a, 0x1b, - 0x1c, 0x94, 0xf5, 0x39, 0x88, 0xae, 0xfe, 0x49, 0xcc, 0xfd, 0xbf, 0x8a, 0x0d, 0x34, 0xb8, 0xa3, - 0x42, 0x30, 0x40, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2d, 0xda, - 0x6c, 0x36, 0xd5, 0xa5, 0x5a, 0xce, 0x97, 0x10, 0x3d, 0xbb, 0xaf, 0x9c, 0x66, 0x2a, 0xcd, 0x3e, - 0xe6, 0xcf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc6, - 0x70, 0xe0, 0x5e, 0x8a, 0x45, 0x0d, 0xb8, 0x2c, 0x00, 0x2a, 0x40, 0x06, 0x39, 0x4c, 0x19, 0x58, - 0x04, 0x35, 0x76, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, - 0x49, 0x00, 0x30, 0x46, 0x02, 0x21, 0x00, 0xe1, 0xfc, 0x00, 0x23, 0xc1, 0x3d, 0x01, 0x3f, 0x22, - 0x31, 0x0b, 0xf0, 0xb8, 0xf4, 0xf4, 0x22, 0xfc, 0x95, 0x96, 0x33, 0x9c, 0xb9, 0x62, 0xb1, 0xfc, - 0x8a, 0x2d, 0xa8, 0x5c, 0xee, 0x67, 0x72, 0x02, 0x21, 0x00, 0xa1, 0x0d, 0x47, 0xe4, 0xfd, 0x0d, - 0x15, 0xd8, 0xde, 0xa1, 0xb5, 0x96, 0x28, 0x4e, 0x7a, 0x0b, 0xbe, 0xcc, 0xec, 0xe8, 0x8e, 0xcc, + 0x30, 0x82, 0x01, 0xa6, 0x30, 0x82, 0x01, 0x4b, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x41, + 0xa6, 0x8b, 0xe4, 0x36, 0xdd, 0xc3, 0xd8, 0x39, 0xfa, 0xbd, 0xd7, 0x27, 0xd9, 0x74, 0xe7, 0x30, + 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x34, 0x31, 0x14, 0x30, + 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, + 0x49, 0x6e, 0x63, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, 0x45, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x20, 0x46, 0x46, 0x46, + 0x46, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x37, 0x31, 0x30, 0x32, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x5a, 0x18, 0x0f, 0x33, 0x30, 0x30, 0x30, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, + 0x35, 0x39, 0x5a, 0x30, 0x2f, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0b, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x17, 0x30, 0x15, 0x06, + 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, + 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x96, + 0x27, 0xf1, 0x3e, 0x80, 0xac, 0xf9, 0xd4, 0x12, 0xce, 0x3b, 0x0d, 0x68, 0xf7, 0x4e, 0xb2, 0xc6, + 0x07, 0x35, 0x00, 0xb7, 0x78, 0x5b, 0xac, 0xe6, 0x50, 0x30, 0x54, 0x77, 0x7f, 0xc8, 0x62, 0x21, + 0xce, 0xf2, 0x5a, 0x9a, 0x9e, 0x86, 0x40, 0xc2, 0x29, 0xd6, 0x4a, 0x32, 0x1e, 0xb9, 0x4a, 0x1b, + 0x1c, 0x94, 0xf5, 0x39, 0x88, 0xae, 0xfe, 0x49, 0xcc, 0xfd, 0xbf, 0x8a, 0x0d, 0x34, 0xb8, 0xa3, + 0x42, 0x30, 0x40, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2d, 0xda, + 0x6c, 0x36, 0xd5, 0xa5, 0x5a, 0xce, 0x97, 0x10, 0x3d, 0xbb, 0xaf, 0x9c, 0x66, 0x2a, 0xcd, 0x3e, + 0xe6, 0xcf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc6, + 0x70, 0xe0, 0x5e, 0x8a, 0x45, 0x0d, 0xb8, 0x2c, 0x00, 0x2a, 0x40, 0x06, 0x39, 0x4c, 0x19, 0x58, + 0x04, 0x35, 0x76, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, + 0x49, 0x00, 0x30, 0x46, 0x02, 0x21, 0x00, 0xe1, 0xfc, 0x00, 0x23, 0xc1, 0x3d, 0x01, 0x3f, 0x22, + 0x31, 0x0b, 0xf0, 0xb8, 0xf4, 0xf4, 0x22, 0xfc, 0x95, 0x96, 0x33, 0x9c, 0xb9, 0x62, 0xb1, 0xfc, + 0x8a, 0x2d, 0xa8, 0x5c, 0xee, 0x67, 0x72, 0x02, 0x21, 0x00, 0xa1, 0x0d, 0x47, 0xe4, 0xfd, 0x0d, + 0x15, 0xd8, 0xde, 0xa1, 0xb5, 0x96, 0x28, 0x4e, 0x7a, 0x0b, 0xbe, 0xcc, 0xec, 0xe8, 0x8e, 0xcc, 0x7a, 0x31, 0xb3, 0x00, 0x8b, 0xc0, 0x2e, 0x4f, 0x99, 0xc5 }; @@ -266,4 +265,3 @@ const atcacert_def_t g_cert_def_2_device = { .cert_template_size = sizeof(g_cert_template_2_device), .ca_cert_def = &g_cert_def_1_signer, }; - diff --git a/cryptoauthlib-manual.pdf b/cryptoauthlib-manual.pdf index 5bb6e5e9b..0844b0ecc 100644 Binary files a/cryptoauthlib-manual.pdf and b/cryptoauthlib-manual.pdf differ diff --git a/harmony/config/cryptoauthlib.py b/harmony/config/cryptoauthlib.py index 40d0d75b8..0d7f9b8d9 100644 --- a/harmony/config/cryptoauthlib.py +++ b/harmony/config/cryptoauthlib.py @@ -221,11 +221,13 @@ def onAttachmentConnected(source, target): if srcConnectionID == 'CAL_LIB_CAP' and 'CRYPTOAUTHLIB' not in targetComponentID and '_' in targetComponentID: calDeviceList = srcComponent.getSymbolByID('CAL_DEVICE_LIST_ENTRIES') add_value_to_list(calDeviceList, targetComponentID.split('_')[0]) - if 'TA100' in targetComponentID: + if ('TA10' in targetComponentID): _ta_dev_cnt += 1 updateFileEnable(srcComponent, _TA_PATHS, True) + calTaConfig = srcComponent.getSymbolByID('TALIB_CONFIG_DATA') + calTaConfig.setEnabled(True) if check_if_file_exists(srcComponent, 'talib_fce'): - calTaEnableFce = srcComponent.getSymbolByID('CAL_ENABLE_TA100_FCE') + calTaEnableFce = srcComponent.getSymbolByID('CAL_ENABLE_TA10x_FCE') calTaEnableFce.setValue(True) else: _ca_dev_cnt += 1 @@ -247,7 +249,7 @@ def onAttachmentConnected(source, target): WolfCrypto = srcComponent.getSymbolByID('CAL_FILE_SRC_WOLFSSL_WRAPPER') WolfCrypto.setEnabled(True) - calTaEnableAesAuth = srcComponent.getSymbolByID('CAL_ENABLE_TA100_AES_AUTH') + calTaEnableAesAuth = srcComponent.getSymbolByID('CAL_ENABLE_TA10x_AES_AUTH') calTaEnableAesAuth.setValue(True) excludeFiles(srcComponent, _EXCL_FILES) @@ -265,13 +267,15 @@ def onAttachmentDisconnected(source, target): if srcConnectionID == 'CAL_LIB_CAP' and '_' in targetComponentID: calDeviceList = srcComponent.getSymbolByID('CAL_DEVICE_LIST_ENTRIES') del_value_from_list(calDeviceList, targetComponentID.split('_')[0]) - if 'TA100' in targetComponentID: + if ('TA10' in targetComponentID): _ta_dev_cnt -= 1 if 0 == _ta_dev_cnt: updateFileEnable(srcComponent, _TA_PATHS, False) - calTaEnableFce = srcComponent.getSymbolByID('CAL_ENABLE_TA100_FCE') + calTaEnableFce = srcComponent.getSymbolByID('CAL_ENABLE_TA10x_FCE') calTaEnableFce.setValue(False) - calTaEnableAesAuth = srcComponent.getSymbolByID('CAL_ENABLE_TA100_AES_AUTH') + calTaConfig = srcComponent.getSymbolByID('TALIB_CONFIG_DATA') + calTaConfig.setEnabled(False) + calTaEnableAesAuth = srcComponent.getSymbolByID('CAL_ENABLE_TA10x_AES_AUTH') calTaEnableAesAuth.setValue(False) else: _ca_dev_cnt -= 1 @@ -295,7 +299,7 @@ def onAttachmentDisconnected(source, target): WolfCrypto = srcComponent.getSymbolByID('CAL_FILE_SRC_WOLFSSL_WRAPPER') WolfCrypto.setEnabled(False) - calTaEnableAesAuth = srcComponent.getSymbolByID('CAL_ENABLE_TA100_AES_AUTH') + calTaEnableAesAuth = srcComponent.getSymbolByID('CAL_ENABLE_TA10x_AES_AUTH') calTaEnableAesAuth.setValue(False) @@ -380,7 +384,7 @@ def instantiateComponent(calComponent): calMaxPacketSize = calComponent.createIntegerSymbol('CAL_MAX_PACKET_SIZE', None) calMaxPacketSize.setLabel('Maximum packet size (bytes)') - calMaxPacketSize.setDefaultValue(1035) + calMaxPacketSize.setDefaultValue(1072) # Symmetric Cryptography Commands symmetricCommands = calComponent.createMenuSymbol("cal_symmetric_commands", None) @@ -920,11 +924,11 @@ def instantiateComponent(calComponent): calDevCfgList.setTarget('cryptoauthlib.CAL_DEV_CFG_LIST') # Add device specific options - calTaEnableAesAuth = calComponent.createBooleanSymbol('CAL_ENABLE_TA100_AES_AUTH', None) + calTaEnableAesAuth = calComponent.createBooleanSymbol('CAL_ENABLE_TA10x_AES_AUTH', None) calTaEnableAesAuth.setValue(False) calTaEnableAesAuth.setVisible(True) - calTaEnableFce = calComponent.createBooleanSymbol('CAL_ENABLE_TA100_FCE', None) + calTaEnableFce = calComponent.createBooleanSymbol('CAL_ENABLE_TA10x_FCE', None) calTaEnableFce.setValue(False) calTaEnableFce.setVisible(True) @@ -963,6 +967,17 @@ def instantiateComponent(calComponent): calLibConfigFile.setMarkup(True) calLibConfigFile.setDependencies(CALSecFileUpdate, ["CAL_NON_SECURE"]) + # Conditionally add talib configuration header + talibConfigFile = calComponent.createFileSymbol("TALIB_CONFIG_DATA", None) + talibConfigFile.setSourcePath("harmony/templates/talib_config.h.ftl") + talibConfigFile.setOutputName("talib_config.h") + talibConfigFile.setDestPath("library/cryptoauthlib") + talibConfigFile.setProjectPath("config/" + configName + "/library/cryptoauthlib/") + talibConfigFile.setType("HEADER") + talibConfigFile.setOverwrite(True) + talibConfigFile.setMarkup(True) + talibConfigFile.setDependencies(CALSecFileUpdate, ["CAL_NON_SECURE"]) + talibConfigFile.setEnabled(False) # This selects and configures the proper processor specific delay implementation as one # does not exist as driver source in harmony diff --git a/harmony/templates/atca_config.h.ftl b/harmony/templates/atca_config.h.ftl index 1b596fc70..defcec1b8 100644 --- a/harmony/templates/atca_config.h.ftl +++ b/harmony/templates/atca_config.h.ftl @@ -15,7 +15,6 @@ - <#assign devices = CAL_DEVICE_LIST?word_list> <#if devices?size != 0> /** Include Device Support Options */ @@ -24,17 +23,6 @@ -<#if CAL_ENABLE_TA100_AES_AUTH> -/** TA100 Specific - Enable auth sessions that require AES (CMAC/GCM) from - an external library */ -#define ATCA_TA100_AES_AUTH_SUPPORT - - -<#if CAL_ENABLE_TA100_FCE> -/** TA100 Specific - Enable support for the FCE APIs for the TA100 */ -#define ATCA_TA100_FCE_SUPPORT - - /** Provide Maximum packet size for the command to be sent and received */ #ifndef MAX_PACKET_SIZE #define MAX_PACKET_SIZE (${CAL_MAX_PACKET_SIZE}U) diff --git a/harmony/templates/talib_config.h.ftl b/harmony/templates/talib_config.h.ftl new file mode 100644 index 000000000..e0bfeb8a9 --- /dev/null +++ b/harmony/templates/talib_config.h.ftl @@ -0,0 +1,19 @@ +/* Auto-generated config file atca_config.h */ +#ifndef TALIB_CONFIG_H +#define TALIB_CONFIG_H + + +/******************** Device Configuration Section *************************/ + +<#if CAL_ENABLE_TA10x_AES_AUTH> +/** TA10x Specific - Enable auth sessions that require AES (CMAC/GCM) from + an external library */ +#define TALIB_AES_AUTH_SUPPORT + + +<#if CAL_ENABLE_TA10x_FCE> +/** TA10x Specific - Enable support for the FCE APIs for the TA10x devices */ +#define TALIB_FCE_SUPPORT + + +#endif // TALIB_CONFIG_H diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index f7bba149e..6d692e515 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,7 +1,6 @@ cmake_minimum_required(VERSION 3.1.0) project(cryptoauth C) -include(CMakeDependentOption) include(CheckSymbolExists) # HAL Selection @@ -22,7 +21,6 @@ option(ATCA_NO_HEAP "Do not use dynamic (heap) allocation functions" OFF) option(ATCA_USE_ATCAB_FUNCTIONS "Build the atcab_ api functions rather than using macros" OFF) option(ATCA_ENABLE_DEPRECATED "Enable the use of older APIs that that been replaced" OFF) option(ATCA_STRICT_C99 "Enable strict C99 compliance for the libray" OFF) -option(ATCA_KDF_HMAC_COUNTER_LEN_IN_BYTES "Enable atcac_sha256_hmac_counter Length in bytes" OFF) # Software Cryptographic backend for host crypto abstractions option(ATCA_MBEDTLS "Integrate with mbedtls" OFF) @@ -44,12 +42,14 @@ option(ATCA_ATSHA206A_SUPPORT "Include support for ATSHA206A device" ON) option(ATCA_ATECC108A_SUPPORT "Include support for ATECC108A device" ON) option(ATCA_ATECC508A_SUPPORT "Include support for ATECC508A device" ON) option(ATCA_ATECC608_SUPPORT "Include support for ATECC608 device" ON) -option(ATCA_TA100_SUPPORT "Include support for TA100 device" OFF) option(ATCA_ECC204_SUPPORT "Include support for ECC204 device" ON) option(ATCA_TA010_SUPPORT "Include support for TA010 device" ON) option(ATCA_SHA104_SUPPORT "Include support for SHA104 device" ON) option(ATCA_SHA105_SUPPORT "Include support for SHA105 device" ON) +# This does various device checks +include(cmake/devices.cmake) + # Preprocessor Warning option if (NOT MSVC) option(ATCA_PREPROCESSOR_WARNING "Enable preprocessor warning statements in library" OFF) @@ -63,30 +63,22 @@ SET(ATCA_ZEPHYR_SUPPORT ON CACHE INTERNAL "Include zephyr hal drivers") endif() # Set maximum packet size that is allowed in bytes -SET(MAX_PACKET_SIZE 1035 CACHE STRING "Dafault packet size allowed in bytes") +SET(MAX_PACKET_SIZE 1072 CACHE STRING "Dafault packet size allowed in bytes") -# TA100 Dependent Configuration options -cmake_dependent_option(ATCA_TA100_AES_AUTH_SUPPORT "Include Encrypted (GCM) and CMAC Auth session support" ON "ATCA_TA100_SUPPORT" OFF) -cmake_dependent_option(ATCA_TA100_FCE_SUPPORT "Include FCE Support for the TA100" ON "ATCA_TA100_SUPPORT" OFF) -# Check Options +# Check Integration Options if (ATCA_MBEDTLS AND (ATCA_WOLFSSL OR ATCA_OPENSSL)) message(FATAL_ERROR "Only one external SSL/TLS library can be supported") elseif (ATCA_WOLFSSL AND (ATCA_MBEDTLS OR ATCA_OPENSSL)) message(FATAL_ERROR "Only one external SSL/TLS library can be supported") endif() -if (ATCA_TA100_SUPPORT AND ATCA_TA100_AES_AUTH_SUPPORT AND NOT (ATCA_MBEDTLS OR ATCA_WOLFSSL OR ATCA_OPENSSL)) -message(FATAL_ERROR "Encrypted (GCM) and CMAC uthorization sessions with the TA100 require a linked crypto library") -endif() - # Check Platform Information check_symbol_exists(malloc "stdlib.h" HAS_MALLOC) check_symbol_exists(free "stdlib.h" HAS_FREE) check_symbol_exists(strcasestr "string.h" HAS_STRCASESTR) check_symbol_exists(memset_s "string.h" HAS_MEMSET_S) - set(BUILD_SHARED_LIBS ${ATCA_BUILD_SHARED_LIBS}) # Collect Library Sources @@ -96,8 +88,6 @@ file(GLOB ATCACERT_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "atcacert/*.c") file(GLOB ATCACERT_INC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "atcacert/*.h") file(GLOB CALIB_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "calib/*.c") file(GLOB CALIB_INC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "calib/*.h") -file(GLOB TALIB_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "talib/*.c") -file(GLOB TALIB_INC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "talib/*.h") file(GLOB_RECURSE CRYPTO_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "crypto/*.c") file(GLOB CRYPTO_INC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "crypto/*.h") file(GLOB CRYPTO_HASHES_INC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "crypto/hashes/*.h") @@ -119,7 +109,6 @@ endif() if(${CMAKE_VERSION} VERSION_GREATER "3.8.0") source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${ATCACERT_SRC}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${CALIB_SRC}) -source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${TALIB_SRC}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${CRYPTO_SRC}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${HOST_SRC}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${JWT_SRC}) @@ -130,99 +119,25 @@ endif() source_group("App/Wpc" FILES ${WPC_SRC}) endif() -if (ATCA_MBEDTLS) -if (NOT TARGET mbedtls) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../third_party/CMakeLists-mbedtls.txt.in ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/mbedtls_downloader/CMakeLists.txt) -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/mbedtls_downloader/) -execute_process(COMMAND ${CMAKE_COMMAND} --build . - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/mbedtls_downloader/) - -file(GLOB MBEDTLS_LIB_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../third_party/mbedtls/library/*.c") - -add_library(mbedtls STATIC ${MBEDTLS_LIB_SRC}) - -target_compile_definitions(mbedtls PUBLIC -DMBEDTLS_CMAC_C) -if(NOT MSVC) -target_compile_options(mbedtls PRIVATE -fPIC) -endif() -include_directories(mbedtls PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/mbedtls/include) -endif() - -file(GLOB MBEDTLS_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "mbedtls/*.c") - -if(NOT MSVC) -set_source_files_properties(mbedtls/atca_mbedtls_wrap.c PROPERTIES COMPILE_FLAGS -Wno-pedantic) -endif() - -if(${CMAKE_VERSION} VERSION_GREATER "3.8.0") -source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${MBEDTLS_SRC}) +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/talib" AND IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/talib") + # Include supporting option checks first + include(talib/cmake/checks.cmake) endif() -set(MBEDTLS_SRC ${MBEDTLS_SRC} "../third_party/atca_mbedtls_patch.c") - +if (ATCA_MBEDTLS) + include(cmake/mbedtls.cmake) endif(ATCA_MBEDTLS) if (ATCA_WOLFSSL) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../third_party/CMakeLists-wolfssl.txt.in ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/wolfssl_downloader/CMakeLists.txt) -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/wolfssl_downloader/) -execute_process(COMMAND ${CMAKE_COMMAND} --build . - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/wolfssl_downloader/) - -#file(GLOB WOLFSSL_LIB_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../third_party/wolfssl/wolfcrypt/src/*.c") - -set(WOLFSSL_LIB_SRC ../third_party/wolfssl/wolfcrypt/src/aes.c - ../third_party/wolfssl/wolfcrypt/src/arc4.c - ../third_party/wolfssl/wolfcrypt/src/asn.c - ../third_party/wolfssl/wolfcrypt/src/cmac.c - ../third_party/wolfssl/wolfcrypt/src/coding.c - ../third_party/wolfssl/wolfcrypt/src/des3.c - ../third_party/wolfssl/wolfcrypt/src/dsa.c - ../third_party/wolfssl/wolfcrypt/src/ecc.c - ../third_party/wolfssl/wolfcrypt/src/hash.c - ../third_party/wolfssl/wolfcrypt/src/hmac.c - ../third_party/wolfssl/wolfcrypt/src/integer.c - ../third_party/wolfssl/wolfcrypt/src/memory.c - ../third_party/wolfssl/wolfcrypt/src/pwdbased.c - ../third_party/wolfssl/wolfcrypt/src/random.c - ../third_party/wolfssl/wolfcrypt/src/rsa.c - ../third_party/wolfssl/wolfcrypt/src/sha.c - ../third_party/wolfssl/wolfcrypt/src/sha256.c - ../third_party/wolfssl/wolfcrypt/src/tfm.c - ../third_party/wolfssl/wolfcrypt/src/wc_encrypt.c - ../third_party/wolfssl/wolfcrypt/src/wc_port.c - ../third_party/wolfssl/wolfcrypt/src/wolfmath.c - ) - - -add_library(wolfssl STATIC ${WOLFSSL_LIB_SRC}) -target_compile_definitions(wolfssl PRIVATE -DWOLFSSL_USER_SETTINGS) -configure_file(../third_party/wolfssl_settings.h.in user_settings.h @ONLY) -set(WOLFSSL_USER_SETTINGS TRUE) - -if(NOT MSVC) -target_compile_options(wolfssl PRIVATE -fPIC) -endif() - -include_directories(wolfssl PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/wolfssl - ${CMAKE_CURRENT_BINARY_DIR}) - - -file(GLOB WOLFSSL_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "wolfssl/*.c") -if(${CMAKE_VERSION} VERSION_GREATER "3.8.0") -source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${WOLFSSL_SRC}) -endif() + include(cmake/wolfssl.cmake) endif(ATCA_WOLFSSL) if (ATCA_OPENSSL) -file(GLOB OPENSSL_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "openssl/*.c") -if(${CMAKE_VERSION} VERSION_GREATER "3.8.0") -source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${OPENSSL_SRC}) -endif() -find_package(OpenSSL REQUIRED) + find_package(OpenSSL REQUIRED) + file(GLOB OPENSSL_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "openssl/*.c") + if(${CMAKE_VERSION} VERSION_GREATER "3.8.0") + source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${OPENSSL_SRC}) + endif() endif(ATCA_OPENSSL) if (ATCA_ATSHA204A_SUPPORT OR ATCA_ATSHA206A_SUPPORT OR @@ -235,10 +150,6 @@ if (ATCA_ATSHA206A_SUPPORT) set(LIB_SRC ${LIB_SRC} ${SHA206_API_SRC}) endif() -if (ATCA_TA100_SUPPORT) -set(LIB_SRC ${LIB_SRC} ${TALIB_SRC}) -endif() - if (ATCA_TNGTLS_SUPPORT OR ATCA_TNGLORA_SUPPORT OR ATCA_TFLEX_SUPPORT) set(LIB_SRC ${LIB_SRC} ${TNG_SRC}) endif() @@ -369,6 +280,9 @@ set(CRYPTOAUTH_SRC ${CRYPTOAUTH_SRC} atca_utils_sizes.c) endif(ATCA_BUILD_SHARED_LIBS) add_library(cryptoauth ${CRYPTOAUTH_SRC} ${ATCACERT_DEF_SRC}) +if (ATCA_TA_SUPPORT) +add_subdirectory(talib) +endif() set_property(TARGET cryptoauth PROPERTY C_STANDARD 99) @@ -395,7 +309,13 @@ endif(BUILD_TESTS) configure_file(atca_config.h.in atca_config.h @ONLY) set(LIB_INC ${LIB_INC} ${CMAKE_CURRENT_BINARY_DIR}/atca_config.h) -include_directories(cryptoauth PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ../app/tng ../third_party ../third_party/hidapi/hidapi ${USB_INCLUDE_DIR}) +include_directories(cryptoauth PUBLIC ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/downloaded + ../app/tng + ../third_party + ../third_party/hidapi/hidapi + ${USB_INCLUDE_DIR}) if(ATCA_MBEDTLS) target_link_libraries(cryptoauth mbedtls) @@ -469,15 +389,20 @@ install(FILES ${LIB_INC} DESTINATION ${DEFAULT_INC_PATH} COMPONENT Development) install(FILES ${HAL_INC} DESTINATION ${DEFAULT_INC_PATH}/hal COMPONENT Development) install(FILES ${ATCACERT_INC} DESTINATION ${DEFAULT_INC_PATH}/atcacert COMPONENT Development) install(FILES ${CALIB_INC} DESTINATION ${DEFAULT_INC_PATH}/calib COMPONENT Development) -install(FILES ${TALIB_INC} DESTINATION ${DEFAULT_INC_PATH}/talib COMPONENT Development) install(FILES ${CRYPTO_INC} DESTINATION ${DEFAULT_INC_PATH}/crypto COMPONENT Development) install(FILES ${CRYPTO_HASHES_INC} DESTINATION ${DEFAULT_INC_PATH}/crypto/hashes COMPONENT Development) install(FILES ${HOST_INC} DESTINATION ${DEFAULT_INC_PATH}/host COMPONENT Development) install(FILES ${JWT_INC} DESTINATION ${DEFAULT_INC_PATH}/jwt COMPONENT Development) -if (ATCA_PKCS11) -install(FILES ${PKCS11_INC} DESTINATION ${DEFAULT_INC_PATH}/pkcs11 COMPONENT Development) -endif() install(FILES ${TNG_INC} DESTINATION ${DEFAULT_INC_PATH}/app/tng COMPONENT Development) install(FILES ${WPC_INC} DESTINATION ${DEFAULT_INC_PATH}/app/wpc COMPONENT Development) install(FILES ${SHA206_API_INC} DESTINATION ${DEFAULT_INC_PATH}/app/api_206a COMPONENT Development) +if(ATCA_MBEDTLS) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mbedtls/atca_mbedtls_interface.h DESTINATION ${DEFAULT_INC_PATH}/mbedtls COMPONENT Development) +endif(ATCA_MBEDTLS) +if(ATCA_OPENSSL) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openssl/atca_openssl_interface.h DESTINATION ${DEFAULT_INC_PATH}/openssl COMPONENT Development) +endif(ATCA_OPENSSL) +if(ATCA_WOLFSSL) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/atca_wolfssl_interface.h DESTINATION ${DEFAULT_INC_PATH}/wolfssl COMPONENT Development) +endif(ATCA_WOLFSSL) endif(DEFAULT_INC_PATH) diff --git a/lib/atca_basic.c b/lib/atca_basic.c index 07fab80b4..31fd6e8e0 100644 --- a/lib/atca_basic.c +++ b/lib/atca_basic.c @@ -274,7 +274,7 @@ bool atcab_is_ca2_device(ATCADeviceType dev_type) */ bool atcab_is_ta_device(ATCADeviceType dev_type) { - return (dev_type == TA100) ? true : false; + return ((dev_type & 0xF0U) == 0x10U) ? true : false; } #ifdef ATCA_USE_ATCAB_FUNCTIONS @@ -3208,7 +3208,7 @@ ATCA_STATUS atcab_sha_start(void) else if (atcab_is_ta_device(dev_type)) { #if ATCA_TA_SUPPORT - status = talib_sha_start(g_atcab_device_ptr); + status = talib_sha_base_compat(g_atcab_device_ptr, TA_SHA_MODE_START, 0U, NULL, NULL, NULL); #endif } else @@ -3239,7 +3239,7 @@ ATCA_STATUS atcab_sha_update(const uint8_t* message) else if (atcab_is_ta_device(dev_type)) { #if ATCA_TA_SUPPORT - status = talib_sha_update_compat(g_atcab_device_ptr, message); + status = talib_sha_base_compat(g_atcab_device_ptr, TA_SHA_MODE_UPDATE, 64U, message, NULL, NULL); #endif } else @@ -3273,7 +3273,7 @@ ATCA_STATUS atcab_sha_end(uint8_t* digest, uint16_t length, const uint8_t* messa else if (atcab_is_ta_device(dev_type)) { #if ATCA_TA_SUPPORT - status = talib_sha_end_compat(g_atcab_device_ptr, digest, length, message); + status = talib_sha_base_compat(g_atcab_device_ptr, TA_SHA_MODE_END, length, message, digest, NULL); #endif } else @@ -3309,7 +3309,15 @@ ATCA_STATUS atcab_sha_read_context(uint8_t* context, uint16_t* context_size) else if (atcab_is_ta_device(dev_type)) { #if ATCA_TA_SUPPORT - status = talib_sha_read_context(g_atcab_device_ptr, context, context_size); + if (NULL != context_size) + { + cal_buffer ctx_buf = CAL_BUF_INIT(*context_size, context); + status = talib_sha_read_context(g_atcab_device_ptr, TA_HANDLE_SHA_CONTEXT0, &ctx_buf); + } + else + { + status = ATCA_BAD_PARAM; + } #endif } else @@ -3341,7 +3349,8 @@ ATCA_STATUS atcab_sha_write_context(const uint8_t* context, uint16_t context_siz else if (atcab_is_ta_device(dev_type)) { #if ATCA_TA_SUPPORT - status = talib_sha_write_context(g_atcab_device_ptr, context, context_size); + cal_buffer ctx_buf = CAL_BUF_INIT(context_size, context); + status = talib_sha_write_context(g_atcab_device_ptr, TA_HANDLE_SHA_CONTEXT0, &ctx_buf); #endif } else @@ -3375,7 +3384,7 @@ ATCA_STATUS atcab_sha(uint16_t length, const uint8_t* message, uint8_t* digest) else if (atcab_is_ta_device(dev_type)) { #if ATCA_TA_SUPPORT - status = talib_sha(g_atcab_device_ptr, length, message, digest); + status = talib_sha_compat(g_atcab_device_ptr, length, message, digest); #endif } else @@ -3409,7 +3418,7 @@ ATCA_STATUS atcab_hw_sha2_256(const uint8_t* data, size_t data_size, uint8_t* di #if ATCA_TA_SUPPORT if (UINT16_MAX >= data_size) { - status = talib_sha(g_atcab_device_ptr, (uint16_t)data_size, data, digest); + status = talib_sha_compat(g_atcab_device_ptr, (uint16_t)data_size, data, digest); } else { @@ -3444,7 +3453,9 @@ ATCA_STATUS atcab_hw_sha2_256_init(atca_sha256_ctx_t* ctx) } else if (atcab_is_ta_device(dev_type)) { - status = ATCA_UNIMPLEMENTED; +#if ATCA_TA_SUPPORT + status = talib_sha_base_compat(g_atcab_device_ptr, TA_SHA_MODE_START, 0U, NULL, NULL, NULL); +#endif } else { @@ -3475,7 +3486,10 @@ ATCA_STATUS atcab_hw_sha2_256_update(atca_sha256_ctx_t* ctx, const uint8_t* data } else if (atcab_is_ta_device(dev_type)) { - status = ATCA_UNIMPLEMENTED; +#if ATCA_TA_SUPPORT + /* coverity[cert_int31_c_violation] data_size < UINT16_MAX is a known documented limitation of the API */ + status = talib_sha_base_compat(g_atcab_device_ptr, TA_SHA_MODE_UPDATE, (uint16_t)data_size, data, NULL, NULL); +#endif } else { @@ -3505,7 +3519,9 @@ ATCA_STATUS atcab_hw_sha2_256_finish(atca_sha256_ctx_t* ctx, uint8_t* digest) } else if (atcab_is_ta_device(dev_type)) { - status = ATCA_UNIMPLEMENTED; +#if ATCA_TA_SUPPORT + status = talib_sha_base_compat(g_atcab_device_ptr, TA_SHA_MODE_END, 0U, NULL, digest, NULL); +#endif } else { diff --git a/lib/atca_config.h.in b/lib/atca_config.h.in index 4a40aac66..530c35540 100644 --- a/lib/atca_config.h.in +++ b/lib/atca_config.h.in @@ -18,12 +18,14 @@ #cmakedefine ATCA_ATECC108A_SUPPORT #cmakedefine ATCA_ATECC508A_SUPPORT #cmakedefine ATCA_ATECC608_SUPPORT -#cmakedefine ATCA_TA100_SUPPORT #cmakedefine ATCA_ECC204_SUPPORT #cmakedefine ATCA_TA010_SUPPORT #cmakedefine ATCA_SHA104_SUPPORT #cmakedefine ATCA_SHA105_SUPPORT +/* Linked device support library */ +#cmakedefine01 ATCA_TA_SUPPORT + /** Device Override - Library Assumes ATECC608B support in checks */ #cmakedefine ATCA_ATECC608A_SUPPORT @@ -99,16 +101,6 @@ selected plus however additional slots one would like */ /******************** Device Configuration Section *************************/ -/** TA100 Specific - Enable auth sessions that require AES (CMAC/GCM) from - an external library */ -#cmakedefine ATCA_TA100_AES_AUTH_SUPPORT - -/** TA100 Specific - Enable support for the FCE APIs for the TA100 */ -#cmakedefine ATCA_TA100_FCE_SUPPORT - -/** TA100 Specific - Enable support for the KDF HMAC Host calculation input length in bytes for Rev before B6 */ -#cmakedefine ATCA_KDF_HMAC_COUNTER_LEN_IN_BYTES - /** Enable the delete command */ #cmakedefine01 CALIB_DELETE_EN @@ -119,6 +111,8 @@ selected plus however additional slots one would like */ #define MAX_PACKET_SIZE (@MAX_PACKET_SIZE@U) #endif +#cmakedefine01 MULTIPART_BUF_EN + /******************** Platform Configuration Section ***********************/ /** Define if the library is not to use malloc/free */ diff --git a/lib/atca_config_check.h b/lib/atca_config_check.h index 5745aee32..fbc18380f 100644 --- a/lib/atca_config_check.h +++ b/lib/atca_config_check.h @@ -69,11 +69,13 @@ #endif /* New Trust Anchor Devices */ +#ifndef ATCA_TA_SUPPORT #if defined(ATCA_TA100_SUPPORT) #define ATCA_TA_SUPPORT DEFAULT_ENABLED #else #define ATCA_TA_SUPPORT DEFAULT_DISABLED #endif +#endif /* ATCA_TA_SUPPORT */ /* Check for external crypto libraries for host side operations */ #ifndef ATCA_HOSTLIB_EN @@ -95,7 +97,6 @@ #define ATCA_CHECK_PARAMS_EN DEFAULT_ENABLED #endif - #if ATCA_CHECK_PARAMS_EN /** Emits message and returns the status code when the condition is true */ #define ATCA_CHECK_INVALID_MSG(c, s, m) if (c) { return ATCA_TRACE(s, m); } @@ -109,7 +110,12 @@ #define ATCA_CHECK_INVALID(c, s) ATCA_CHECK_INVALID_MSG(c, s, "") #define ATCA_CHECK_VALID(c) ATCA_CHECK_VALID_MSG(c, "") - +/** \def MULTIPART_BUF_EN + * Enables multipart buffer handling (generally for small memory model platforms) + */ +#ifndef MULTIPART_BUF_EN +#define MULTIPART_BUF_EN (DEFAULT_DISABLED) +#endif /**** AES command ****/ @@ -649,89 +655,4 @@ #define ATCAB_WRITE_ENC_EN ATCAB_WRITE_EN #endif -/* Host side Cryptographic functionality required by the library */ - -/** \def ATCAC_SHA1_EN - * - * Enable ATCAC_SHA1_EN to enable sha1 host side api - * - * Supported API's: atcab_write - **/ -#ifndef ATCAC_SHA1_EN -#define ATCAC_SHA1_EN (DEFAULT_ENABLED) -#endif - -/** \def ATCAC_SHA256_EN - * - * Enable ATCAC_SHA256_EN to enable sha256 host side api - * - * Supported API's: atcab_write - **/ -#ifndef ATCAC_SHA256_EN -#define ATCAC_SHA256_EN (DEFAULT_ENABLED) -#endif - -/** \def ATCAC_SHA256_HMAC - * - * Requires: ATCAC_SHA256_HMAC - * ATCAC_SW_SHA2_256 - * - * Enable ATCAC_SHA256_HMAC to initialize context for performing HMAC (sha256) in software - * - * Supported API's: atcac_sha256_hmac_init, atcac_sha256_hmac_update, atcac_sha256_hmac_finish - **/ -#ifndef ATCAC_SHA256_HMAC_EN -#define ATCAC_SHA256_HMAC_EN ATCAC_SHA256_EN -#endif - -/** \def ATCAC_SHA256_HMAC_COUNTER - * - * Requires: ATCAC_SHA256_HMAC_COUNTER - * ATCAC_SHA256_HMAC - * ATCAC_SW_SHA2_256 - * - * Enable ATCAC_SHA256_HMAC_COUNTER to implement SHA256 HMAC-Counter per NIST SP 800-108 used for - * KDF like operations - * - * Supported API's: atcac_sha256_hmac_counter - **/ -#ifndef ATCAC_SHA256_HMAC_CTR_EN -#define ATCAC_SHA256_HMAC_CTR_EN ATCAC_SHA256_HMAC_EN -#endif - -/** \def ATCAC_RANDOM_EN - * - * Requires: ATCA_HOSTLIB_EN - * - * Enable ATCAC_RANDOM_EN get random numbers from the host's - * implementation - generally assumed to come from the host's - * cryptographic library or peripheral driver - * - */ -#ifndef ATCAC_RANDOM_EN -#define ATCAC_RANDOM_EN ATCA_HOSTLIB_EN -#endif - -/** \def ATCAC_VERIFY_EN - * - * Requires: ATCA_HOSTLIB_EN - * - * Enable ATCAC_VERIFY_EN to use the host's verify functions. Generally assumed - * to come from the host's cryptographic library or peripheral driver. - */ -#ifndef ATCAC_VERIFY_EN -#define ATCAC_VERIFY_EN ATCA_HOSTLIB_EN -#endif - -/** \def ATCAC_SIGN_EN - * - * Requires: ATCA_HOSTLIB_EN - * - * Enable ATCAC_SIGN_EN to use the host's sign functions. Generally assumed - * to come from the host's cryptographic library or peripheral driver. - */ -#ifndef ATCAC_SIGN_EN -#define ATCAC_SIGN_EN ATCA_HOSTLIB_EN -#endif - #endif /* ATCA_CONFIG_CHECK_H */ diff --git a/lib/atca_device.c b/lib/atca_device.c index 8de13eba2..10da27158 100644 --- a/lib/atca_device.c +++ b/lib/atca_device.c @@ -127,6 +127,13 @@ ATCA_STATUS releaseATCADevice(ATCADevice ca_dev) return ATCA_BAD_PARAM; } + if (NULL != ca_dev->session_cb) + { + ca_dev->session_cb(ca_dev->session_ctx); + ca_dev->session_ctx = NULL; + ca_dev->session_cb = NULL; + } + return releaseATCAIface(&ca_dev->mIface); } diff --git a/lib/atca_device.h b/lib/atca_device.h index 9fdd3b1a3..0dcb59495 100644 --- a/lib/atca_device.h +++ b/lib/atca_device.h @@ -48,6 +48,9 @@ typedef enum ATCA_DEVICE_STATE_ACTIVE } ATCADeviceState; +/** \brief Callback function to clean up the session context + */ +typedef void (*ctx_cb)(void* ctx); /** \brief atca_device is the C object backing ATCADevice. See the atca_device.h file for * details on the ATCADevice methods @@ -60,16 +63,9 @@ struct atca_device uint8_t clock_divider; uint16_t execution_time_msec; - uint8_t session_state; /**< Secure Session State */ - uint16_t session_counter; /**< Secure Session Message Count */ - uint16_t session_key_id; /**< Key ID used for a secure sesison */ - uint8_t* session_key; /**< Session Key */ - uint8_t session_key_len; /**< Length of key used for the session in bytes */ - - uint16_t options; /**< Nested command details parameter */ - - bool write_xfer_req; /**< Set for Write_transfer operation */ - bool read_xfer_req; /**< Set for Read_transfer operation */ + /* Session Management */ + void * session_ctx; + ctx_cb session_cb; }; typedef struct atca_device * ATCADevice; diff --git a/lib/atca_utils_sizes.c b/lib/atca_utils_sizes.c index 334daa269..9d28f97e6 100644 --- a/lib/atca_utils_sizes.c +++ b/lib/atca_utils_sizes.c @@ -26,6 +26,7 @@ */ #include "cryptoauthlib.h" +#include "cal_internal.h" #ifdef __COVERITY__ #pragma coverity compliance block deviate "MISRA C-2012 Rule 20.12" "This macro is used as a template to generate hooks for python integration" @@ -120,6 +121,37 @@ SIZE_OF_API_S(atca_iface) /* atca_status.h */ SIZE_OF_API_T(ATCA_STATUS) +/* atca_crypto_sw.h */ +#if ATCAC_SHA1_EN || ATCA_CRYPTO_SHA1_EN +SIZE_OF_API_S(atcac_sha1_ctx) +SIZE_OF_API_T(atcac_sha1_ctx_t) +#endif + +#if ATCAC_SHA256_EN || ATCA_CRYPTO_SHA2_EN +SIZE_OF_API_S(atcac_sha2_256_ctx) +SIZE_OF_API_T(atcac_sha2_256_ctx_t) +#endif + +#if ATCAC_SHA256_HMAC_EN || ATCA_CRYPTO_SHA2_HMAC_EN +SIZE_OF_API_S(atcac_hmac_ctx) +SIZE_OF_API_T(atcac_hmac_ctx_t) +#endif + +#if ATCAC_AES_CMAC_EN +SIZE_OF_API_S(atcac_aes_cmac_ctx) +SIZE_OF_API_T(atcac_aes_cmac_ctx_t) +#endif + +#if ATCAC_AES_GCM_EN +SIZE_OF_API_S(atcac_aes_gcm_ctx) +SIZE_OF_API_T(atcac_aes_gcm_ctx_t) +#endif + +#if ATCAC_PKEY_EN +SIZE_OF_API_S(atcac_pk_ctx) +SIZE_OF_API_T(atcac_pk_ctx_t) +#endif + #ifdef __COVERITY__ #pragma coverity compliance end_block "MISRA C-2012 Rule 20.12" #endif diff --git a/lib/atca_version.h b/lib/atca_version.h index a7cacfd57..e9c7b09fb 100644 --- a/lib/atca_version.h +++ b/lib/atca_version.h @@ -30,9 +30,9 @@ #define ATCA_VERSION_H // Version format yyyymmdd -#define ATCA_LIBRARY_VERSION_DATE "20230714" +#define ATCA_LIBRARY_VERSION_DATE "20230908" #define ATCA_LIBRARY_VERSION_MAJOR 3 -#define ATCA_LIBRARY_VERSION_MINOR 6 -#define ATCA_LIBRARY_VERSION_BUILD 1 +#define ATCA_LIBRARY_VERSION_MINOR 7 +#define ATCA_LIBRARY_VERSION_BUILD 0 #endif /* ATCA_VERSION_H */ diff --git a/lib/atcacert/atcacert_host_sw.c b/lib/atcacert/atcacert_host_sw.c index 54294ed67..7a0ea8133 100644 --- a/lib/atcacert/atcacert_host_sw.c +++ b/lib/atcacert/atcacert_host_sw.c @@ -27,6 +27,7 @@ #include "atcacert_host_sw.h" #include "crypto/atca_crypto_sw.h" +#include "cal_internal.h" #if ATCAC_VERIFY_EN && ATCACERT_COMPCERT_EN ATCA_STATUS atcacert_verify_cert_sw(const atcacert_def_t* cert_def, @@ -37,7 +38,7 @@ ATCA_STATUS atcacert_verify_cert_sw(const atcacert_def_t* cert_def, ATCA_STATUS ret = 0; uint8_t tbs_digest[32]; uint8_t signature[64]; - atcac_pk_ctx pkey_ctx; + atcac_pk_ctx_t pkey_ctx; if (cert_def == NULL || ca_public_key == NULL || cert == NULL) { @@ -90,7 +91,7 @@ ATCA_STATUS atcacert_verify_response_sw(const uint8_t device_public_key[64], const uint8_t challenge[32], const uint8_t response[64]) { - atcac_pk_ctx pkey_ctx; + atcac_pk_ctx_t pkey_ctx; ATCA_STATUS ret = ATCACERT_E_BAD_PARAMS; if (device_public_key == NULL || challenge == NULL || response == NULL) diff --git a/lib/cal_buffer.c b/lib/cal_buffer.c new file mode 100644 index 000000000..1bb511a2c --- /dev/null +++ b/lib/cal_buffer.c @@ -0,0 +1,726 @@ +/** + * \file + * \brief Cryptoauthlib buffer management system + * + * \copyright (c) 2023 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#include +#include "cal_buffer.h" + +/** \ingroup cal_buf_ + * @{ + */ + +/** \brief Read bytes from a single cal_buffer all at once - Internal implementation */ +static ATCA_STATUS cal_buf_read_bytes_single( + /** [in] Buffer structure to read from */ + cal_buffer * cab, + /** [in] Offset to start the read from */ + size_t offset, + /** [in] Pointer to a destination buffer */ + void * dest, + /** [in] Length of the read - assumes dest has sufficent + * memory to accept the bytes being read */ + size_t length, + /** [in] Reverse the order of the bytes during the read - swap endianness */ + bool reverse + ) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if (NULL != cab->buf) + { + if (0U < length) + { + if ((cab->len > offset) && (cab->len - offset) >= length) + { + if (reverse) + { + uint8_t * src_p = &cab->buf[offset]; + uint8_t * dst_p = (uint8_t*)dest; + size_t i; + for (i = 0U; i < length; i++) + { + *dst_p-- = *src_p++; + } + } + else + { + (void)memcpy((uint8_t*)dest, &cab->buf[offset], length); + } + status = ATCA_SUCCESS; + } + else + { + /* Buffer is too small to supply the requested bytes */ + status = ATCA_INVALID_SIZE; + } + } + else + { + status = ATCA_SUCCESS; + } + } + return status; +} + +#if MULTIPART_BUF_EN +/** \brief Read bytes from a cal_buffer linked list - Internal implementation */ +static ATCA_STATUS cal_buf_read_bytes_multipart( + /** [in] Buffer Linked List to read from */ + cal_buffer * cab, + /** [in] Offset to start the read from */ + size_t offset, + /** [in] Pointer to a destination buffer */ + void * dest, + /** [in] Length of the read - assumes dest has sufficent + * memory to accept the bytes being read */ + size_t length, + /** [in] Reverse the order of the bytes during the read - swap endianness */ + bool reverse + ) +{ + ATCA_STATUS status = ATCA_SUCCESS; + cal_buffer * cab_p = cab; + uint8_t * dest_p = (uint8_t*)dest; + + do + { + if (cab_p->len > offset) + { + size_t len = cab_p->len - offset; + if (len >= length) + { + len = length; + } + if (ATCA_SUCCESS == (status = cal_buf_read_bytes_single(cab_p, offset, dest_p, len, reverse))) + { + if (reverse) + { + dest_p -= len; + } + else + { + dest_p += len; + } + length -= len; + offset = 0; + } + } + else + { + offset -= cab_p->len; + } + cab_p = cab_p->next; + } + while ((ATCA_SUCCESS == status) && (0U < length) && (NULL != cab_p)); + + if (0U < length) + { + /* Buffer is too small to supply the requested bytes */ + status = ATCA_INVALID_SIZE; + } + + return status; +} +#endif + +/** \brief Read bytes from a cal_buffer or cal_buffer linked list - Internal implementation */ +static ATCA_STATUS cal_buf_read_bytes_internal( + /** [in] Pointer to a buffer structure or the head of a buffer structure linked list */ + cal_buffer * cab, + /** [in] Offset to start the read from */ + size_t offset, + /** [in] Pointer to a destination buffer */ + void * dest, + /** [in] Length of the read - assumes dest has sufficent + * memory to accept the bytes being read */ + size_t length, + /** [in] Reverse the order of the bytes during the read - swap endianness */ + bool reverse + ) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if ((NULL != dest) && (NULL != cab)) + { +#if MULTIPART_BUF_EN + if (NULL != cab->next) + { + status = cal_buf_read_bytes_multipart(cab, offset, dest, length, reverse); + } + else +#endif + { + status = cal_buf_read_bytes_single(cab, offset, dest, length, reverse); + } + } + return status; +} + +/** \brief Read bytes from a cal_buffer or cal_buffer linked list */ +ATCA_STATUS cal_buf_read_bytes( + /** [in] Pointer to a buffer structure or the head of a buffer structure linked list */ + cal_buffer * cab, + /** [in] Offset to start the read from */ + size_t offset, + /** [in] Pointer to a destination buffer */ + void * dest, + /** [in] Length of the read - assumes dest has sufficent + * memory to accept the bytes being read */ + size_t length + ) +{ + return cal_buf_read_bytes_internal(cab, offset, dest, length, false); +} + +/** \brief Write bytes into a single cal_buffer all at once - Internal implementation */ +static ATCA_STATUS cal_buf_write_bytes_single( + /** [in] Buffer structure to write to */ + cal_buffer * cab, + /** [in] Target offset to start the write at */ + size_t offset, + /** [in] Pointer to a source buffer */ + const void * source, + /** [in] Length of the write - assumes source is sufficently large to support this operation */ + size_t length, + /** [in] Reverse the order of the bytes during the write - swap endianness */ + bool reverse + ) +{ + ATCA_STATUS status = ATCA_SUCCESS; + + if (0U < length) + { + if ((cab->len > offset) && (cab->len - offset) >= length) + { + const uint8_t * src_p = (const uint8_t*)source; + if (reverse) + { + uint8_t * dst_p = &cab->buf[offset]; + size_t i; + for (i = 0U; i < length; i++) + { + *dst_p++ = *src_p--; + } + } + else + { + (void)memcpy(&cab->buf[offset], src_p, length); + } + } + else + { + /* Buffer is too small to accept the bytes to be written */ + status = ATCA_INVALID_SIZE; + } + } + + return status; +} + +#if MULTIPART_BUF_EN +/** \brief Write bytes into a cal_buffer linked list - Internal implementation */ +static ATCA_STATUS cal_buf_write_bytes_multipart( + /** [in] Buffer linked list to write to */ + cal_buffer * cab, + /** [in] Target offset to start the write at */ + size_t offset, + /** [in] Pointer to a source buffer */ + const void * source, + /** [in] Length of the write - assumes source is sufficently large to support this operation */ + size_t length, + /** [in] Reverse the order of the bytes during the write - swap endianness */ + bool reverse + ) +{ + ATCA_STATUS status = ATCA_SUCCESS; + cal_buffer * cab_p = cab; + const uint8_t * src_p = (const uint8_t*)source; + + do + { + if (cab_p->len > offset) + { + size_t len = cab_p->len - offset; + if (len >= length) + { + len = length; + } + if (ATCA_SUCCESS == (status = cal_buf_write_bytes_single(cab_p, offset, src_p, len, reverse))) + { + if (reverse) + { + src_p -= len; + } + else + { + src_p += len; + } + length -= len; + offset = 0; + } + } + else + { + offset -= cab_p->len; + } + cab_p = cab_p->next; + } + while ((ATCA_SUCCESS == status) && (0U < length) && (NULL != cab_p)); + + if (0U < length) + { + /* Buffer is too small to supply the requested bytes */ + status = ATCA_INVALID_SIZE; + } + + return status; +} +#endif + +/** \brief Write bytes into a single cal_buffer structure or cal_buffer linked list - Internal implementation */ +static ATCA_STATUS cal_buf_write_bytes_internal( + /** [in] Pointer to a buffer structure or the head of a buffer structure linked list */ + cal_buffer * cab, + /** [in] Target offset to start the write at */ + size_t offset, + /** [in] Pointer to a source buffer */ + const void * source, + /** [in] Length of the write - assumes source is sufficently large to support this operation */ + size_t length, + /** [in] Reverse the order of the bytes during the write - swap endianness */ + bool reverse + ) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if ((NULL != source) && (NULL != cab) && (NULL != cab->buf)) + { +#if MULTIPART_BUF_EN + if (NULL != cab->next) + { + status = cal_buf_write_bytes_multipart(cab, offset, source, length, reverse); + } + else +#endif + { + status = cal_buf_write_bytes_single(cab, offset, source, length, reverse); + } + } + return status; +} + +ATCA_STATUS cal_buf_read_byte(cal_buffer * cab, size_t offset, uint8_t * value) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + +#if MULTIPART_BUF_EN + while ((NULL != cab) && (cab->len < offset)) + { + offset -= cab->len; + cab = cab->next; + } +#endif + + if ((NULL != value) && (NULL != cab) && (cab->len > offset) && (NULL != cab->buf)) + { + *value = cab->buf[offset]; + status = ATCA_SUCCESS; + } + + return status; +} + +ATCA_STATUS cal_buf_write_byte(cal_buffer * cab, size_t offset, uint8_t value) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + +#if MULTIPART_BUF_EN + while ((NULL != cab) && (cab->len < offset)) + { + offset -= cab->len; + cab = cab->next; + } +#endif + + if ((NULL != cab) && (cab->len > offset) && (NULL != cab->buf)) + { + cab->buf[offset] = value; + status = ATCA_SUCCESS; + } + + return status; +} + + +/** \brief Write bytes into a single cal_buffer structure or cal_buffer linked list*/ +ATCA_STATUS cal_buf_write_bytes( + /** [in] Pointer to a buffer structure or the head of a buffer structure linked list */ + cal_buffer * cab, + /** [in] Target offset to start the write at */ + size_t offset, + /** [in] Pointer to a source buffer */ + const void * source, + /** [in] Length of the write - assumes source is sufficently large to support this operation */ + size_t length + ) +{ + return cal_buf_write_bytes_internal(cab, offset, source, length, false); +} + +/** \brief Read a number from a cal_buffer or cal_buffer linked list + * This function does not reinterpet the number and signedness is only preserved + * if the destination is the same size as the representation in the buffer + */ +ATCA_STATUS cal_buf_read_number( + /** [in] Pointer to a buffer structure or the head of a buffer structure linked list */ + cal_buffer * cab, + /** [in] Offset to start the read from */ + size_t offset, + /** [in] Pointer to a destination number */ + void * dest, + /** [in] Size of the number in bytes */ + size_t num_size, + /** [in] Specifies the expected endianness representation within the buffer */ + bool buf_big_endian + ) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if (NULL != dest) + { + uint8_t * dst_p = (uint8_t*)dest; + bool reverse = false; + #ifdef ATCA_PLATFORM_BE + if (!buf_big_endian) + #else + if (buf_big_endian) + #endif + { + reverse = true; + dst_p += num_size; + dst_p -= 1U; + } + + status = cal_buf_read_bytes_internal(cab, offset, dst_p, num_size, reverse); + } + + return status; +} + +/** \brief Write a number into a cal_buffer or cal_buffer linked list + * This function does not reinterpet the number and signedness is only preserved + * if the destination is the same size as the source + */ +ATCA_STATUS cal_buf_write_number( + /** [in] Pointer to a buffer structure or the head of a buffer structure linked list */ + cal_buffer * cab, + /** [in] Offset to start the write at */ + size_t offset, + /** [in] Pointer to a number to be written */ + const void * source, + /** [in] Size of the number in bytes */ + size_t num_size, + /** [in] Specifies the expected endianness representation within the buffer */ + bool buf_big_endian + ) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if (NULL != source) + { + const uint8_t * src_p = (const uint8_t*)source; + bool reverse = false; + #ifdef ATCA_PLATFORM_BE + if (!buf_big_endian) + #else + if (buf_big_endian) + #endif + { + reverse = true; + src_p += num_size; + src_p -= 1U; + } + + status = cal_buf_write_bytes_internal(cab, offset, src_p, num_size, reverse); + } + + return status; +} + +ATCA_STATUS cal_buf_set_used(cal_buffer * buf, size_t used) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if (NULL != buf) + { + if (NULL == buf->buf) + { + buf->len = used; + } + else + { + status = ATCA_INVALID_SIZE; + +#if MULTIPART_BUF_EN + while ((NULL != buf) && (NULL != buf->buf) && (0U < buf->len) && (0U < used)) + { + if (buf->len >= used) + { + buf->len = used; + used = 0; + status = ATCA_SUCCESS; + } + else + { + used -= buf->len; + } + buf = buf->next; + } +#else + if (buf->len >= used) + { + buf->len = used; + status = ATCA_SUCCESS; + } +#endif + } + } + return status; +} + +size_t cal_buf_get_used(cal_buffer * buf) +{ + size_t used = 0U; + + if (NULL != buf) + { + #if MULTIPART_BUF_EN + do + { + /* coverity[cert_int30_c_violation] Wrapping is infeasible in practice because the total length is limited to UINT16_MAX elsewhere */ + used += buf->len; + buf = buf->next; + } + while ((NULL != buf) && (NULL != buf->buf) && (0U < buf->len)); + #else + used = buf->len; + #endif + } + + return used; +} + + +ATCA_STATUS cal_buf_copy(cal_buffer * dst, size_t dst_offset, cal_buffer * src, size_t src_offset, size_t length) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if (0U < length) + { +#if MULTIPART_BUF_EN + while ((NULL != dst) && (dst->len < dst_offset)) + { + dst_offset -= dst->len; + dst = dst->next; + } +#else + if ((NULL == dst) || (dst_offset > dst->len)) + { + return status; + } +#endif + +#if MULTIPART_BUF_EN + while ((NULL != src) && (src->len < src_offset)) + { + src_offset -= src->len; + src = src->next; + } +#else + if ((NULL == src) || (src_offset > src->len)) + { + return status; + } +#endif + +#if MULTIPART_BUF_EN + while ((NULL != dst) && (NULL != dst->buf) && (NULL != src) && (NULL != src->buf)) +#else + if ((NULL != dst->buf) && (NULL != src->buf)) +#endif + { + size_t bytes_to_copy; + + if (dst->len - dst_offset > length) + { + bytes_to_copy = length; + } + else + { + bytes_to_copy = dst->len - dst_offset; + } + + if (src->len - src_offset < bytes_to_copy) + { + bytes_to_copy = src->len - src_offset; + } + + (void)memcpy(&dst->buf[dst_offset], &src->buf[src_offset], bytes_to_copy); + + length -= bytes_to_copy; + dst_offset += bytes_to_copy; + src_offset += bytes_to_copy; + + if (0U == length) + { + status = ATCA_SUCCESS; + #if MULTIPART_BUF_EN + break; + #endif + } + else + { + if (dst->len == dst_offset) + { + #if MULTIPART_BUF_EN + dst_offset = 0; + if (NULL == (dst = dst->next)) + { + status = ATCA_SMALL_BUFFER; + } + #else + status = ATCA_SMALL_BUFFER; + #endif + } + if (src->len == src_offset) + { + #if MULTIPART_BUF_EN + src_offset = 0; + if (NULL == (src = src->next)) + { + status = ATCA_INVALID_SIZE; + } + #else + status = ATCA_INVALID_SIZE; + #endif + } + } + } + } + return status; +} + +ATCA_STATUS cal_buf_set(cal_buffer * dst, size_t dst_offset, uint8_t value, size_t length) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if (0U < length) + { +#if MULTIPART_BUF_EN + while ((NULL != dst) && (dst->len < dst_offset)) + { + dst_offset -= dst->len; + dst = dst->next; + } +#else + if ((NULL == dst) || (dst_offset > dst->len)) + { + return status; + } +#endif +#if MULTIPART_BUF_EN + while ((NULL != dst) && (NULL != dst->buf)) +#else + if (NULL != dst->buf) +#endif + { + size_t bytes_to_set = (dst->len - dst_offset > length) ? length : dst->len - dst_offset; + + (void)memset(&dst->buf[dst_offset], (int)value, bytes_to_set); + + length -= bytes_to_set; + dst_offset += bytes_to_set; + + if (0U == length) + { + status = ATCA_SUCCESS; + #if MULTIPART_BUF_EN + break; + #endif + } + else + { + if (dst->len == dst_offset) + { + #if MULTIPART_BUF_EN + dst_offset = 0; + if (NULL == (dst = dst->next)) + { + status = ATCA_SMALL_BUFFER; + } + #else + status = ATCA_SMALL_BUFFER; + #endif + } + } + } + } + + return status; +} + +#ifdef ATCA_PRINTF +void cal_buf_print(cal_buffer * buf) +{ + size_t i; + + if (NULL == buf) + { + printf("Buffer is NULL\n"); + } + else if (NULL == buf->buf) + { + printf("Buffer is inconsistent\n"); + } + else + { + while ((NULL != buf) && (NULL != buf->buf)) + { + for (i = 0; i < buf->len; i++) + { + printf("%02x ", buf->buf[i]); + } +#if MULTIPART_BUF_EN + buf = buf->next; +#else + buf = NULL; +#endif + } + } +} +#endif + +/** @} */ diff --git a/lib/cal_buffer.h b/lib/cal_buffer.h new file mode 100644 index 000000000..e5750dba1 --- /dev/null +++ b/lib/cal_buffer.h @@ -0,0 +1,114 @@ +/** + * \file + * \brief Cryptoauthlib buffer management system + * + * \copyright (c) 2023 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef CAL_BUFFER_H +#define CAL_BUFFER_H + +#include +#include +#include + +#include "atca_config_check.h" +#include "atca_status.h" + +/** \ingroup cal_buf_ + * @{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct cal_buffer_s +{ + /** Length of the provided buffer */ + size_t len; + /** Pointer to the actual buffer */ + uint8_t* buf; +#if MULTIPART_BUF_EN + /** Pointer to the next in the list */ + struct cal_buffer_s * next; +#endif +} cal_buffer; + + + +#ifdef __COVERITY__ + #if MULTIPART_BUF_EN + #define CAL_BUF_INIT(s, b) { \ + _Pragma("coverity compliance deviate 'CERT EXP40-C'") \ + _Pragma("coverity compliance deviate 'CERT STR30-C'") \ + _Pragma("coverity compliance deviate 'MISRA C-2012 Rule 10.8'") \ + _Pragma("coverity compliance deviate 'MISRA C-2012 Rule 11.8'") \ + (size_t)s, (uint8_t*)b, NULL } + #define CAL_BUF_INIT_LINK(s, b, n) { \ + _Pragma("coverity compliance deviate 'CERT EXP40-C'") \ + _Pragma("coverity compliance deviate 'CERT STR30-C'") \ + _Pragma("coverity compliance deviate 'MISRA C-2012 Rule 10.8'") \ + _Pragma("coverity compliance deviate 'MISRA C-2012 Rule 11.8'") \ + (size_t)s, (uint8_t*)b, n } + #else + #define CAL_BUF_INIT(s, b) { \ + _Pragma("coverity compliance deviate 'CERT EXP40-C'") \ + _Pragma("coverity compliance deviate 'CERT STR30-C'") \ + _Pragma("coverity compliance deviate 'MISRA C-2012 Rule 10.8'") \ + _Pragma("coverity compliance deviate 'MISRA C-2012 Rule 11.8'") \ + (size_t)s, (uint8_t*)b } + #endif +#else + #if MULTIPART_BUF_EN + #define CAL_BUF_INIT(s, b) { (size_t)(s), (uint8_t*)(b), NULL } + #define CAL_BUF_INIT_LINK(s, b, n) { (size_t)(s), (uint8_t*)(b), n } + #else + #define CAL_BUF_INIT(s, b) { (size_t)(s), (uint8_t*)(b) } + #endif +#endif + +ATCA_STATUS cal_buf_read_byte(cal_buffer * cab, size_t offset, uint8_t * value); +ATCA_STATUS cal_buf_write_byte(cal_buffer * cab, size_t offset, uint8_t value); + +ATCA_STATUS cal_buf_read_bytes(cal_buffer * cab, size_t offset, void * dest, size_t length); +ATCA_STATUS cal_buf_write_bytes(cal_buffer * cab, size_t offset, const void * source, size_t length); +ATCA_STATUS cal_buf_read_number(cal_buffer * cab, size_t offset, void * dest, size_t num_size, bool buf_big_endian); +ATCA_STATUS cal_buf_write_number(cal_buffer * cab, size_t offset, const void * source, size_t num_size, bool buf_big_endian); + +ATCA_STATUS cal_buf_copy(cal_buffer * dst, size_t dst_offset, cal_buffer * src, size_t src_offset, size_t length); +ATCA_STATUS cal_buf_set(cal_buffer * dst, size_t dst_offset, uint8_t value, size_t length); + +ATCA_STATUS cal_buf_set_used(cal_buffer * buf, size_t used); +size_t cal_buf_get_used(cal_buffer * buf); + +#ifdef ATCA_PRINTF +void cal_buf_print(cal_buffer * buf); +#endif + +#ifdef __cplusplus +} +#endif + +/** @} */ +#endif /* CAL_BUFFER_H */ diff --git a/lib/cal_internal.h b/lib/cal_internal.h new file mode 100644 index 000000000..045a3c608 --- /dev/null +++ b/lib/cal_internal.h @@ -0,0 +1,48 @@ +/** + * \file + * \brief Internal CryptoAuthLib Interfaces + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef CAL_INTERNAL_H +#define CAL_INTERNAL_H + +#include "atca_config_check.h" +#include "crypto/atca_crypto_sw.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(ATCA_MBEDTLS) +#include "mbedtls/atca_mbedtls_wrap.h" +#elif defined(ATCA_WOLFSSL) +#include "wolfssl/atca_wolfssl_internal.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* CAL_INTERNAL_H */ diff --git a/lib/calib/calib_basic.h b/lib/calib/calib_basic.h index 03788ac09..b972a77cf 100644 --- a/lib/calib/calib_basic.h +++ b/lib/calib/calib_basic.h @@ -354,7 +354,7 @@ ATCA_STATUS calib_ca2_write_bytes_zone(ATCADevice device, uint8_t zone, uint16_t #endif /* CALIB_WRITE_CA2_EN */ #if CALIB_WRITE_ENC_EN && ATCA_CA2_SUPPORT ATCA_STATUS calib_ca2_write_enc(ATCADevice device, uint16_t slot, uint8_t* data, uint8_t* transport_key, - uint8_t transport_key_id, uint8_t num_in[NONCE_NUMIN_SIZE]); + uint16_t transport_key_id, uint8_t num_in[NONCE_NUMIN_SIZE]); #endif /* CALIB_WRITE_ENC_EN && ATCA_CA2_SUPPORT */ /* Map calib functions to atcab names for api compatibility without abstraction overhead */ diff --git a/lib/calib/calib_command.h b/lib/calib/calib_command.h index 7f6b52e14..a91da5247 100644 --- a/lib/calib/calib_command.h +++ b/lib/calib/calib_command.h @@ -36,6 +36,7 @@ #define CALIB_COMMAND_H #include +#include "calib_config_check.h" #ifdef __cplusplus extern "C" { #endif diff --git a/lib/calib/calib_config_check.h b/lib/calib/calib_config_check.h index 7550f9e81..b063a0171 100644 --- a/lib/calib/calib_config_check.h +++ b/lib/calib/calib_config_check.h @@ -713,6 +713,8 @@ /* Check host side configuration for missing components */ +#include "crypto/crypto_sw_config_check.h" + /* Check for any commands that require a sha implementation */ #if !ATCA_HOSTLIB_EN && !ATCAC_SHA256_EN diff --git a/lib/calib/calib_write.c b/lib/calib/calib_write.c index 49f24de09..9f29fbd6c 100644 --- a/lib/calib/calib_write.c +++ b/lib/calib/calib_write.c @@ -766,7 +766,7 @@ ATCA_STATUS calib_ca2_write_config_counter(ATCADevice device, uint8_t counter_id * \return ATCA_SUCCESS on success, otherwise an error code */ ATCA_STATUS calib_ca2_write_enc(ATCADevice device, uint16_t slot, uint8_t* data, uint8_t* transport_key, - uint8_t transport_key_id, uint8_t num_in[NONCE_NUMIN_SIZE]) + uint16_t transport_key_id, uint8_t num_in[NONCE_NUMIN_SIZE]) { ATCA_STATUS status = ATCA_SUCCESS; atca_nonce_in_out_t nonce_params; @@ -804,7 +804,7 @@ ATCA_STATUS calib_ca2_write_enc(ATCADevice device, uint16_t slot, uint8_t* data, // Random Nonce inputs (void)memset(&temp_key, 0, sizeof(temp_key)); (void)memset(&nonce_params, 0, sizeof(nonce_params)); - nonce_params.mode = NONCE_MODE_SEED_UPDATE; + nonce_params.mode = NONCE_MODE_GEN_SESSION_KEY; nonce_params.zero = transport_key_id; nonce_params.num_in = &num_in[0]; nonce_params.rand_out = rand_out; diff --git a/lib/cmake/devices.cmake b/lib/cmake/devices.cmake new file mode 100644 index 000000000..a40452a4a --- /dev/null +++ b/lib/cmake/devices.cmake @@ -0,0 +1,51 @@ +# Device support checks + +if(ATCA_ATSHA204A_SUPPORT) +message(STATUS "Adding ATSHA204A Device Support") +set(SHA204_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_ATSHA206A_SUPPORT) +message(STATUS "Adding ATSHA206A Device Support") +set(SHA206_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_ATECC108A_SUPPORT) +message(STATUS "Adding ATECC108A Device Support") +set(ECC108_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_ATECC508A_SUPPORT) +message(STATUS "Adding ATECC508A Device Support") +set(ECC508_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_ATECC608_SUPPORT) +message(STATUS "Adding ATECC608 Device Support") +set(ECC608_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_ECC204_SUPPORT) +message(STATUS "Adding ECC204 Device Support") +set(ECC204_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_TA010_SUPPORT) +message(STATUS "Adding TA010 Device Support") +set(TA010_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_SHA104_SUPPORT) +message(STATUS "Adding SHA104 Device Support") +set(SHA104_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_SHA106_SUPPORT) +message(STATUS "Adding SHA106 Device Support") +set(SHA106_ENABLED ON PARENT_SCOPE) +endif() + +if(ATCA_SHA105_SUPPORT) +message(STATUS "Adding SHA105 Device Support") +set(SHA105_ENABLED ON PARENT_SCOPE) +endif() diff --git a/lib/cmake/mbedtls.cmake b/lib/cmake/mbedtls.cmake new file mode 100644 index 000000000..49d4db8b4 --- /dev/null +++ b/lib/cmake/mbedtls.cmake @@ -0,0 +1,32 @@ +# Helper Cmake file to properly set up mbedtls integration + +if (NOT TARGET mbedtls) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../third_party/CMakeLists-mbedtls.txt.in ${CMAKE_BINARY_DIR}/mbedtls_downloader/CMakeLists.txt) +execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/mbedtls_downloader/) +execute_process(COMMAND ${CMAKE_COMMAND} --build . + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/mbedtls_downloader/) + +file(GLOB MBEDTLS_LIB_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_BINARY_DIR}/downloaded/mbedtls/library/*.c") + +add_library(mbedtls STATIC ${MBEDTLS_LIB_SRC}) + +target_compile_definitions(mbedtls PUBLIC -DMBEDTLS_CMAC_C) +if(NOT MSVC) +target_compile_options(mbedtls PRIVATE -fPIC) +endif() +include_directories(mbedtls PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/downloaded/mbedtls/include) +endif() + +file(GLOB MBEDTLS_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "mbedtls/*.c") + +if(NOT MSVC) +set_source_files_properties(mbedtls/atca_mbedtls_wrap.c PROPERTIES COMPILE_FLAGS -Wno-pedantic) +endif() + +if(${CMAKE_VERSION} VERSION_GREATER "3.8.0") +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${MBEDTLS_SRC}) +endif() + +set(MBEDTLS_SRC ${MBEDTLS_SRC} "../third_party/atca_mbedtls_patch.c") diff --git a/lib/cmake/wolfssl.cmake b/lib/cmake/wolfssl.cmake new file mode 100644 index 000000000..7bb1d7e30 --- /dev/null +++ b/lib/cmake/wolfssl.cmake @@ -0,0 +1,52 @@ +# Helper Cmake file to properly set up wolfssl integration + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../third_party/CMakeLists-wolfssl.txt.in ${CMAKE_BINARY_DIR}/wolfssl_downloader/CMakeLists.txt) +execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/wolfssl_downloader/) +execute_process(COMMAND ${CMAKE_COMMAND} --build . + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/wolfssl_downloader/) + +#file(GLOB WOLFSSL_LIB_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../third_party/wolfssl/wolfcrypt/src/*.c") + +set(WOLFSSL_LIB_SRC ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/aes.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/arc4.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/asn.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/cmac.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/coding.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/des3.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/dsa.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/ecc.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/hash.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/hmac.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/integer.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/memory.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/pwdbased.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/random.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/rsa.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/sha.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/sha256.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/tfm.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/wc_encrypt.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/wc_port.c + ${CMAKE_BINARY_DIR}/downloaded/wolfssl/wolfcrypt/src/wolfmath.c + ) + + +add_library(wolfssl STATIC ${WOLFSSL_LIB_SRC}) +target_compile_definitions(wolfssl PRIVATE -DWOLFSSL_USER_SETTINGS) +configure_file(../third_party/wolfssl_settings.h.in user_settings.h @ONLY) +set(WOLFSSL_USER_SETTINGS TRUE) + +if(NOT MSVC) +target_compile_options(wolfssl PRIVATE -fPIC) +endif() + +include_directories(wolfssl PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/downloaded/wolfssl + ${CMAKE_CURRENT_BINARY_DIR}) + + +file(GLOB WOLFSSL_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "wolfssl/*.c") +if(${CMAKE_VERSION} VERSION_GREATER "3.8.0") +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${WOLFSSL_SRC}) +endif() diff --git a/lib/crypto/atca_crypto_hw_aes.h b/lib/crypto/atca_crypto_hw_aes.h index 8c63d2900..175c095e1 100644 --- a/lib/crypto/atca_crypto_hw_aes.h +++ b/lib/crypto/atca_crypto_hw_aes.h @@ -29,7 +29,7 @@ #define ATCA_CRYPTO_HW_AES_H #include "cryptoauthlib.h" -#include "crypto_config_check.h" +#include "crypto_hw_config_check.h" #ifdef __cplusplus extern "C" { @@ -138,6 +138,11 @@ ATCA_STATUS atcab_aes_ccm_encrypt_finish(atca_aes_ccm_ctx_t* ctx, uint8_t* tag, ATCA_STATUS atcab_aes_ccm_decrypt_finish(atca_aes_ccm_ctx_t* ctx, const uint8_t* tag, bool* is_verified); #endif +#if ATCAC_PKCS7_PAD_EN +ATCA_STATUS atcac_pkcs7_pad(uint8_t * buffer, size_t * buflen, const size_t datalen, const uint8_t blocksize); +ATCA_STATUS atcac_pkcs7_unpad(uint8_t * buffer, size_t * buflen, const uint8_t blocksize); +#endif + #ifdef __cplusplus } #endif diff --git a/lib/crypto/atca_crypto_hw_aes_cbc.c b/lib/crypto/atca_crypto_hw_aes_cbc.c index d6f317c3c..ec827aa89 100644 --- a/lib/crypto/atca_crypto_hw_aes_cbc.c +++ b/lib/crypto/atca_crypto_hw_aes_cbc.c @@ -6,7 +6,7 @@ * messages or data packets in ECB mode. * * \note List of devices that support this command - ATECC608A, ATECC608B, - * & TA100. Refer to device datasheet for full details. + * & TA10x. Refer to device datasheet for full details. * * * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. diff --git a/lib/crypto/atca_crypto_hw_aes_cbcmac.c b/lib/crypto/atca_crypto_hw_aes_cbcmac.c index 0d8b7c164..24e6cec54 100644 --- a/lib/crypto/atca_crypto_hw_aes_cbcmac.c +++ b/lib/crypto/atca_crypto_hw_aes_cbcmac.c @@ -34,7 +34,7 @@ */ #include "cryptoauthlib.h" -#include "crypto_config_check.h" +#include "crypto_hw_config_check.h" #if ATCAB_AES_CBCMAC_EN /** \brief Initialize context for AES CBC-MAC operation. diff --git a/lib/crypto/atca_crypto_hw_aes_cmac.c b/lib/crypto/atca_crypto_hw_aes_cmac.c index 31c3906a1..75a8afbfb 100644 --- a/lib/crypto/atca_crypto_hw_aes_cmac.c +++ b/lib/crypto/atca_crypto_hw_aes_cmac.c @@ -6,7 +6,7 @@ * messages or data packets in ECB mode. * * \note List of devices that support this command - ATECC608A, ATECC608B, - * & TA100. Refer to device datasheet for full details. + * & TA10x. Refer to device datasheet for full details. * * * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. diff --git a/lib/crypto/atca_crypto_pbkdf2.c b/lib/crypto/atca_crypto_pbkdf2.c index 1edcb42fa..28254c125 100644 --- a/lib/crypto/atca_crypto_pbkdf2.c +++ b/lib/crypto/atca_crypto_pbkdf2.c @@ -27,6 +27,7 @@ */ #include "cryptoauthlib.h" +#include "cal_internal.h" #if ATCAC_PBKDF2_SHA256_EN /** \brief Calculate a PBKDF2 hash of a given password and salt @@ -44,12 +45,12 @@ ATCA_STATUS atcac_pbkdf2_sha256( ) { ATCA_STATUS status = ATCA_BAD_PARAM; - atcac_hmac_sha256_ctx ctx; + atcac_hmac_ctx_t ctx; uint32_t i, j; uint32_t counter = 1; uint8_t temp1_digest[ATCA_SHA256_DIGEST_SIZE] = { 0 }; uint8_t temp2_digest[ATCA_SHA256_DIGEST_SIZE] = { 0 }; - atcac_sha2_256_ctx sha256_ctx; + atcac_sha2_256_ctx_t sha256_ctx; if ((0U >= result_len) || (result_len > UINT32_MAX)) { diff --git a/lib/crypto/atca_crypto_sw.h b/lib/crypto/atca_crypto_sw.h index a35a70d0a..ef2d02c09 100644 --- a/lib/crypto/atca_crypto_sw.h +++ b/lib/crypto/atca_crypto_sw.h @@ -28,11 +28,10 @@ #ifndef ATCA_CRYPTO_SW_H #define ATCA_CRYPTO_SW_H - #include #include -#include "crypto/crypto_config_check.h" +#include "crypto/crypto_sw_config_check.h" #include "atca_status.h" #ifdef __cplusplus @@ -43,204 +42,140 @@ extern "C" { #define ATCA_SHA2_256_DIGEST_SIZE (32U) #define ATCA_SHA2_256_BLOCK_SIZE (64U) -#if defined(ATCA_MBEDTLS) -#ifdef __COVERITY__ -#pragma coverity compliance block(include) \ - (fp "CERT INT30-C" "Ignoring violations from third party libraries") \ - (fp "CERT INT31-C" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 3.1" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 5.1" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 8.2" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 10.4" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 11.9" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 14.4" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 15.6" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 21.1" "Ignoring violations from third party libraries") +#if ATCA_HOSTLIB_EN +ATCA_STATUS atcac_sw_random(uint8_t* data, size_t data_size); #endif -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" +#if ATCAC_SHA1_EN || ATCA_CRYPTO_SHA1_EN +#if ATCA_CRYPTO_SHA1_EN +typedef struct atcac_sha1_ctx +{ + uint32_t pad[32]; +} atcac_sha1_ctx_t; #else -#include MBEDTLS_CONFIG_FILE +struct atcac_sha1_ctx; #endif -#ifndef MBEDTLS_CMAC_C -#define MBEDTLS_CMAC_C +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_sha1_ctx * atcac_sha1_ctx_new(void); +void atcac_sha1_ctx_free(struct atcac_sha1_ctx * ctx); #endif -#include -#include -#include -typedef mbedtls_cipher_context_t atcac_aes_cmac_ctx; -typedef mbedtls_md_context_t atcac_hmac_sha256_ctx; -typedef mbedtls_cipher_context_t atcac_aes_gcm_ctx; -typedef mbedtls_md_context_t atcac_sha1_ctx; -typedef mbedtls_md_context_t atcac_sha2_256_ctx; -typedef mbedtls_pk_context atcac_pk_ctx; - -#ifdef __COVERITY__ -#pragma coverity compliance end_block(include) \ - "CERT INT30-C" \ - "CERT INT31-C" \ - "MISRA C-2012 Rule 3.1" \ - "MISRA C-2012 Rule 5.1" \ - "MISRA C-2012 Rule 8.2" \ - "MISRA C-2012 Rule 10.4" \ - "MISRA C-2012 Rule 11.9" \ - "MISRA C-2012 Rule 14.4" \ - "MISRA C-2012 Rule 15.6" \ - "MISRA C-2012 Rule 21.1" -#endif +ATCA_STATUS atcac_sw_sha1_init(struct atcac_sha1_ctx* ctx); +ATCA_STATUS atcac_sw_sha1_update(struct atcac_sha1_ctx* ctx, const uint8_t* data, size_t data_size); +ATCA_STATUS atcac_sw_sha1_finish(struct atcac_sha1_ctx* ctx, uint8_t digest[ATCA_SHA1_DIGEST_SIZE]); +#endif /* ATCAC_SHA1_EN || ATCA_CRYPTO_SHA1_EN */ + -#elif defined(ATCA_OPENSSL) -typedef struct +#if ATCAC_SHA256_EN || ATCA_CRYPTO_SHA2_EN +#if ATCA_CRYPTO_SHA2_EN +typedef struct atcac_sha2_256_ctx { - void* ptr; -} atca_evp_ctx; -typedef atca_evp_ctx atcac_aes_gcm_ctx; -typedef atca_evp_ctx atcac_sha1_ctx; -typedef atca_evp_ctx atcac_sha2_256_ctx; -typedef atca_evp_ctx atcac_aes_cmac_ctx; -typedef atca_evp_ctx atcac_hmac_sha256_ctx; -typedef atca_evp_ctx atcac_pk_ctx; -#elif defined(ATCA_WOLFSSL) -#ifdef __COVERITY__ -#pragma coverity compliance block(include) \ - (fp "CERT DCL37-C" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Directive 4.10" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 3.1" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 7.3" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 8.2" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 20.13" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 21.1" "Ignoring violations from third party libraries") \ - (fp "MISRA C-2012 Rule 21.2" "Ignoring violations from third party libraries") + uint32_t pad[48]; +} atcac_sha2_256_ctx_t; +#else +struct atcac_sha2_256_ctx; #endif -#include "wolfssl/wolfcrypt/types.h" -#ifndef WOLFSSL_CMAC -#define WOLFSSL_CMAC +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_sha2_256_ctx * atcac_sha256_ctx_new(void); +void atcac_sha256_ctx_free(struct atcac_sha2_256_ctx * ctx); #endif -#ifndef HAVE_AESGCM -#define HAVE_AESGCM -#endif -#include "wolfssl/wolfcrypt/aes.h" -#include "wolfssl/wolfcrypt/cmac.h" -#include "wolfssl/wolfcrypt/hmac.h" -#include "wolfssl/wolfcrypt/sha.h" -#include "wolfssl/wolfcrypt/sha256.h" -#include "wolfssl/wolfcrypt/error-crypt.h" -#include "wolfssl/wolfcrypt/asn_public.h" -#include "wolfssl/wolfcrypt/asn.h" -#include "wolfssl/wolfcrypt/random.h" - -typedef struct -{ - Aes aes; - uint8_t iv[AES_BLOCK_SIZE]; - uint16_t iv_len; -} atcac_aes_gcm_ctx; -typedef struct -{ - void* ptr; -} atca_wc_ctx; - -typedef wc_Sha atcac_sha1_ctx; -typedef wc_Sha256 atcac_sha2_256_ctx; -typedef Cmac atcac_aes_cmac_ctx; -typedef Hmac atcac_hmac_sha256_ctx; -typedef atca_wc_ctx atcac_pk_ctx; - -/* Some configurations end up with a circular definition the above have to be defined before include ecc.h (since ecc.h can call cryptoauthlib functions) */ -#include "wolfssl/wolfcrypt/ecc.h" - -#ifdef __COVERITY__ -#pragma coverity compliance end_block(include) \ - "CERT DCL37-C" \ - "MISRA C-2012 Directive 4.10" \ - "MISRA C-2012 Rule 3.1" \ - "MISRA C-2012 Rule 7.3" \ - "MISRA C-2012 Rule 8.2" \ - "MISRA C-2012 Rule 20.13" \ - "MISRA C-2012 Rule 21.1" \ - "MISRA C-2012 Rule 21.2" -#endif +ATCA_STATUS atcac_sw_sha2_256_init(struct atcac_sha2_256_ctx* ctx); +ATCA_STATUS atcac_sw_sha2_256_update(struct atcac_sha2_256_ctx* ctx, const uint8_t* data, size_t data_size); +ATCA_STATUS atcac_sw_sha2_256_finish(struct atcac_sha2_256_ctx* ctx, uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]); +#endif /* ATCAC_SHA256_EN || ATCA_CRYPTO_SHA2_EN */ -#else -typedef struct -{ - uint32_t pad[32]; //!< Filler value to make sure the actual implementation has enough room to store its context. uint32_t is used to remove some alignment warnings. -} atcac_sha1_ctx; -typedef struct +#if ATCAC_SHA256_HMAC_EN || ATCA_CRYPTO_SHA2_HMAC_EN +#if ATCA_CRYPTO_SHA2_HMAC_EN +typedef struct atcac_hmac_ctx { - uint32_t pad[48]; //!< Filler value to make sure the actual implementation has enough room to store its context. uint32_t is used to remove some alignment warnings. -} atcac_sha2_256_ctx; - -typedef struct -{ - atcac_sha2_256_ctx* sha256_ctx; - uint8_t ipad[ATCA_SHA2_256_BLOCK_SIZE]; - uint8_t opad[ATCA_SHA2_256_BLOCK_SIZE]; -} atcac_hmac_sha256_ctx; + atcac_sha2_256_ctx_t* sha256_ctx; + uint8_t ipad[ATCA_SHA2_256_BLOCK_SIZE]; + uint8_t opad[ATCA_SHA2_256_BLOCK_SIZE]; +} atcac_hmac_ctx_t; +#else +struct atcac_hmac_ctx; #endif -ATCA_STATUS atcac_sw_sha1_init(atcac_sha1_ctx* ctx); -ATCA_STATUS atcac_sw_sha1_update(atcac_sha1_ctx* ctx, const uint8_t* data, size_t data_size); -ATCA_STATUS atcac_sw_sha1_finish(atcac_sha1_ctx* ctx, uint8_t digest[ATCA_SHA1_DIGEST_SIZE]); - -ATCA_STATUS atcac_sw_sha2_256_init(atcac_sha2_256_ctx* ctx); -ATCA_STATUS atcac_sw_sha2_256_update(atcac_sha2_256_ctx* ctx, const uint8_t* data, size_t data_size); -ATCA_STATUS atcac_sw_sha2_256_finish(atcac_sha2_256_ctx* ctx, uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]); - -ATCA_STATUS atcac_sha256_hmac_init(atcac_hmac_sha256_ctx* ctx, atcac_sha2_256_ctx* sha256_ctx, const uint8_t* key, const uint8_t key_len); -ATCA_STATUS atcac_sha256_hmac_update(atcac_hmac_sha256_ctx* ctx, const uint8_t* data, size_t data_size); -ATCA_STATUS atcac_sha256_hmac_finish(atcac_hmac_sha256_ctx* ctx, uint8_t* digest, size_t* digest_len); - -#if defined(ATCA_MBEDTLS) || defined(ATCA_OPENSSL) || defined(ATCA_WOLFSSL) -ATCA_STATUS atcac_aes_gcm_encrypt_start(atcac_aes_gcm_ctx* ctx, const uint8_t* key, const uint8_t key_len, const uint8_t* iv, const uint8_t iv_len); -ATCA_STATUS atcac_aes_gcm_decrypt_start(atcac_aes_gcm_ctx* ctx, const uint8_t* key, const uint8_t key_len, const uint8_t* iv, const uint8_t iv_len); - -ATCA_STATUS atcac_aes_cmac_init(atcac_aes_cmac_ctx* ctx, const uint8_t* key, const uint8_t key_len); -ATCA_STATUS atcac_aes_cmac_update(atcac_aes_cmac_ctx* ctx, const uint8_t* data, const size_t data_size); -ATCA_STATUS atcac_aes_cmac_finish(atcac_aes_cmac_ctx* ctx, uint8_t* cmac, size_t* cmac_size); - -ATCA_STATUS atcac_pk_init(atcac_pk_ctx* ctx, const uint8_t* buf, size_t buflen, uint8_t key_type, bool pubkey); -ATCA_STATUS atcac_pk_init_pem(atcac_pk_ctx* ctx, const uint8_t* buf, size_t buflen, bool pubkey); -ATCA_STATUS atcac_pk_free(atcac_pk_ctx* ctx); -ATCA_STATUS atcac_pk_public(atcac_pk_ctx* ctx, uint8_t* buf, size_t* buflen); -ATCA_STATUS atcac_pk_sign(atcac_pk_ctx* ctx, const uint8_t* digest, size_t dig_len, uint8_t* signature, size_t* sig_len); -ATCA_STATUS atcac_pk_verify(atcac_pk_ctx* ctx, const uint8_t* digest, size_t dig_len, const uint8_t* signature, size_t sig_len); -ATCA_STATUS atcac_pk_derive(atcac_pk_ctx* private_ctx, atcac_pk_ctx* public_ctx, uint8_t* buf, size_t* buflen); - +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_hmac_ctx * atcac_hmac_ctx_new(void); +void atcac_hmac_ctx_free(struct atcac_hmac_ctx * ctx); #endif -#if defined(ATCA_MBEDTLS) || defined(ATCA_OPENSSL) -ATCA_STATUS atcac_aes_gcm_aad_update(atcac_aes_gcm_ctx* ctx, const uint8_t* aad, const size_t aad_len); +ATCA_STATUS atcac_sha256_hmac_init(struct atcac_hmac_ctx* ctx, struct atcac_sha2_256_ctx* sha256_ctx, + const uint8_t* key, const uint8_t key_len); +ATCA_STATUS atcac_sha256_hmac_update(struct atcac_hmac_ctx* ctx, const uint8_t* data, size_t data_size); +ATCA_STATUS atcac_sha256_hmac_finish(struct atcac_hmac_ctx* ctx, uint8_t* digest, size_t* digest_len); +#endif /* ATCAC_SHA256_HMAC_EN || ATCA_CRYPTO_SHA2_HMAC_EN */ -ATCA_STATUS atcac_aes_gcm_encrypt_update(atcac_aes_gcm_ctx* ctx, const uint8_t* plaintext, const size_t pt_len, uint8_t* ciphertext, size_t* ct_len); -ATCA_STATUS atcac_aes_gcm_encrypt_finish(atcac_aes_gcm_ctx* ctx, uint8_t* tag, size_t tag_len); -ATCA_STATUS atcac_aes_gcm_decrypt_update(atcac_aes_gcm_ctx* ctx, const uint8_t* ciphertext, const size_t ct_len, uint8_t* plaintext, size_t* pt_len); -ATCA_STATUS atcac_aes_gcm_decrypt_finish(atcac_aes_gcm_ctx* ctx, const uint8_t* tag, size_t tag_len, bool* is_verified); +#if ATCAC_AES_CMAC_EN +struct atcac_aes_cmac_ctx; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_aes_cmac_ctx * atcac_aes_cmac_ctx_new(void); +void atcac_aes_cmac_ctx_free(struct atcac_aes_cmac_ctx * ctx); +#endif -#elif defined(ATCA_WOLFSSL) -ATCA_STATUS atcac_aes_gcm_encrypt(atcac_aes_gcm_ctx* ctx, const uint8_t* plaintext, const size_t pt_len, uint8_t* ciphertext, uint8_t* tag, - size_t tag_len, const uint8_t* aad, const size_t aad_len); +ATCA_STATUS atcac_aes_cmac_init(struct atcac_aes_cmac_ctx* ctx, const uint8_t* key, const uint8_t key_len); +ATCA_STATUS atcac_aes_cmac_update(struct atcac_aes_cmac_ctx* ctx, const uint8_t* data, const size_t data_size); +ATCA_STATUS atcac_aes_cmac_finish(struct atcac_aes_cmac_ctx* ctx, uint8_t* cmac, size_t* cmac_size); +#endif /* ATCAC_AES_CMAC_EN */ -ATCA_STATUS atcac_aes_gcm_decrypt(atcac_aes_gcm_ctx* ctx, const uint8_t* ciphertext, const size_t ct_len, uint8_t* plaintext, const uint8_t* tag, - size_t tag_len, const uint8_t* aad, const size_t aad_len, bool* is_verified); +#if ATCAC_AES_GCM_EN +struct atcac_aes_gcm_ctx; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_aes_gcm_ctx * atcac_aes_gcm_ctx_new(void); +void atcac_aes_gcm_ctx_free(struct atcac_aes_gcm_ctx * ctx); #endif -#if ATCA_HOSTLIB_EN -ATCA_STATUS atcac_sw_random(uint8_t* data, size_t data_size); +ATCA_STATUS atcac_aes_gcm_encrypt_start(struct atcac_aes_gcm_ctx* ctx, const uint8_t* key, const uint8_t key_len, + const uint8_t* iv, const uint8_t iv_len); +ATCA_STATUS atcac_aes_gcm_decrypt_start(struct atcac_aes_gcm_ctx* ctx, const uint8_t* key, const uint8_t key_len, + const uint8_t* iv, const uint8_t iv_len); +ATCA_STATUS atcac_aes_gcm_encrypt(struct atcac_aes_gcm_ctx* ctx, const uint8_t* plaintext, const size_t pt_len, + uint8_t* ciphertext, uint8_t* tag, size_t tag_len, const uint8_t* aad, + const size_t aad_len); +ATCA_STATUS atcac_aes_gcm_decrypt(struct atcac_aes_gcm_ctx* ctx, const uint8_t* ciphertext, const size_t ct_len, + uint8_t* plaintext, const uint8_t* tag, size_t tag_len, const uint8_t* aad, + const size_t aad_len, bool* is_verified); + +#if ATCAC_AES_GCM_UPDATE_EN +ATCA_STATUS atcac_aes_gcm_aad_update(struct atcac_aes_gcm_ctx* ctx, const uint8_t* aad, const size_t aad_len); +ATCA_STATUS atcac_aes_gcm_encrypt_update(struct atcac_aes_gcm_ctx* ctx, const uint8_t* plaintext, const size_t pt_len, + uint8_t* ciphertext, size_t* ct_len); +ATCA_STATUS atcac_aes_gcm_encrypt_finish(struct atcac_aes_gcm_ctx* ctx, uint8_t* tag, size_t tag_len); +ATCA_STATUS atcac_aes_gcm_decrypt_update(struct atcac_aes_gcm_ctx* ctx, const uint8_t* ciphertext, const size_t ct_len, + uint8_t* plaintext, size_t* pt_len); +ATCA_STATUS atcac_aes_gcm_decrypt_finish(struct atcac_aes_gcm_ctx* ctx, const uint8_t* tag, size_t tag_len, + bool* is_verified); +#endif /* ATCAC_AES_GCM_UPDATE_EN */ + +#endif /* ATCAC_AES_GCM_EN */ + +#if ATCAC_PKEY_EN +struct atcac_pk_ctx; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_pk_ctx * atcac_pk_ctx_new(void); +void atcac_pk_ctx_free(struct atcac_pk_ctx * ctx); #endif -ATCA_STATUS atcac_pbkdf2_sha256(const uint32_t iter, const uint8_t* password, const size_t password_len, const uint8_t* salt, const size_t salt_len, uint8_t* result, size_t result_len); - -ATCA_STATUS atcac_pkcs7_pad(uint8_t * buffer, size_t * buflen, const size_t datalen, const uint8_t blocksize); -ATCA_STATUS atcac_pkcs7_unpad(uint8_t * buffer, size_t * buflen, const uint8_t blocksize); +ATCA_STATUS atcac_pk_init(struct atcac_pk_ctx* ctx, const uint8_t* buf, size_t buflen, uint8_t key_type, bool pubkey); +ATCA_STATUS atcac_pk_init_pem(struct atcac_pk_ctx* ctx, const uint8_t* buf, size_t buflen, bool pubkey); +ATCA_STATUS atcac_pk_free(struct atcac_pk_ctx* ctx); +ATCA_STATUS atcac_pk_public(struct atcac_pk_ctx* ctx, uint8_t* buf, size_t* buflen); +ATCA_STATUS atcac_pk_sign(struct atcac_pk_ctx* ctx, const uint8_t* digest, size_t dig_len, uint8_t* signature, size_t* sig_len); +ATCA_STATUS atcac_pk_verify(struct atcac_pk_ctx* ctx, const uint8_t* digest, size_t dig_len, const uint8_t* signature, size_t sig_len); +ATCA_STATUS atcac_pk_derive(struct atcac_pk_ctx* private_ctx, struct atcac_pk_ctx* public_ctx, uint8_t* buf, size_t* buflen); +#endif /* ATCAC_PKEY_EN */ + +#if ATCAC_PBKDF2_SHA256_EN +ATCA_STATUS atcac_pbkdf2_sha256(const uint32_t iter, const uint8_t* password, const size_t password_len, + const uint8_t* salt, const size_t salt_len, uint8_t* result, size_t result_len); +#endif #ifdef __cplusplus } diff --git a/lib/crypto/atca_crypto_sw_aes_gcm.c b/lib/crypto/atca_crypto_sw_aes_gcm.c new file mode 100644 index 000000000..64f3b1bdb --- /dev/null +++ b/lib/crypto/atca_crypto_sw_aes_gcm.c @@ -0,0 +1,81 @@ +/** + * \file + * \brief Common Wrapper for host side AES-GCM implementations that feature + * update APIs rather than an all at once implementation + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#include "atca_crypto_sw.h" + +#if ATCAC_AES_GCM_EN && ATCAC_AES_GCM_UPDATE_EN + +ATCA_STATUS atcac_aes_gcm_encrypt( + struct atcac_aes_gcm_ctx* ctx, + const uint8_t* plaintext, + const size_t pt_len, + uint8_t* ciphertext, + uint8_t* tag, + size_t tag_len, + const uint8_t* aad, + const size_t aad_len) +{ + ATCA_STATUS status; + + if (ATCA_SUCCESS == (status = atcac_aes_gcm_aad_update(ctx, aad, aad_len))) + { + size_t ct_len = pt_len; + if (NULL != plaintext && 0u != pt_len) + { + (void)atcac_aes_gcm_encrypt_update(ctx, plaintext, pt_len, ciphertext, &ct_len); + } + status = atcac_aes_gcm_encrypt_finish(ctx, tag, tag_len); + } + return status; +} + +ATCA_STATUS atcac_aes_gcm_decrypt( + struct atcac_aes_gcm_ctx* ctx, + const uint8_t* ciphertext, + const size_t ct_len, + uint8_t* plaintext, + const uint8_t* tag, + size_t tag_len, + const uint8_t* aad, + const size_t aad_len, + bool* is_verified) +{ + ATCA_STATUS status; + + if (ATCA_SUCCESS == (status = atcac_aes_gcm_aad_update(ctx, aad, aad_len))) + { + size_t pt_len = ct_len; + if (ATCA_SUCCESS == (status = atcac_aes_gcm_decrypt_update(ctx, ciphertext, ct_len, plaintext, &pt_len))) + { + status = atcac_aes_gcm_decrypt_finish(ctx, tag, tag_len, is_verified); + } + } + return status; +} + +#endif diff --git a/lib/crypto/atca_crypto_sw_sha1.c b/lib/crypto/atca_crypto_sw_sha1.c index 1c406002d..4d5603f51 100644 --- a/lib/crypto/atca_crypto_sw_sha1.c +++ b/lib/crypto/atca_crypto_sw_sha1.c @@ -29,6 +29,7 @@ #include "atca_crypto_sw_sha1.h" #include "hashes/sha1_routines.h" #include "cryptoauthlib.h" +#include "cal_internal.h" #if ATCA_CRYPTO_SHA1_EN /** \brief Initialize context for performing SHA1 hash in software. @@ -36,9 +37,9 @@ * \return ATCA_SUCCESS on success, otherwise an error code. */ -int atcac_sw_sha1_init(atcac_sha1_ctx* ctx) +int atcac_sw_sha1_init(struct atcac_sha1_ctx* ctx) { - if (sizeof(CL_HashContext) > sizeof(atcac_sha1_ctx)) + if (sizeof(CL_HashContext) > sizeof(atcac_sha1_ctx_t)) { return ATCA_ASSERT_FAILURE; // atcac_sha1_ctx isn't large enough for this implementation } @@ -54,7 +55,7 @@ int atcac_sw_sha1_init(atcac_sha1_ctx* ctx) \param[in] data_size Data size in bytes \return ATCA_SUCCESS */ -int atcac_sw_sha1_update(atcac_sha1_ctx* ctx, const uint8_t* data, size_t data_size) +int atcac_sw_sha1_update(struct atcac_sha1_ctx* ctx, const uint8_t* data, size_t data_size) { CL_hashUpdate((CL_HashContext*)ctx, data, (int)data_size); @@ -66,12 +67,24 @@ int atcac_sw_sha1_update(atcac_sha1_ctx* ctx, const uint8_t* data, size_t data_s * \param[out] digest Digest is returned here (20 bytes) * \return ATCA_SUCCESS */ -int atcac_sw_sha1_finish(atcac_sha1_ctx* ctx, uint8_t digest[ATCA_SHA1_DIGEST_SIZE]) +int atcac_sw_sha1_finish(struct atcac_sha1_ctx* ctx, uint8_t digest[ATCA_SHA1_DIGEST_SIZE]) { CL_hashFinal((CL_HashContext*)ctx, digest); return ATCA_SUCCESS; } + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_sha1_ctx * atcac_sha1_ctx_new(void) +{ + return (struct atcac_sha1_ctx*)hal_malloc(sizeof(atcac_sha1_ctx_t)); +} +void atcac_sha1_ctx_free(struct atcac_sha1_ctx * ctx) +{ + hal_free(ctx); +} +#endif + #endif /* ATCA_CRYPTO_SHA1_EN */ #if ATCAC_SHA1_EN @@ -84,7 +97,7 @@ int atcac_sw_sha1_finish(atcac_sha1_ctx* ctx, uint8_t digest[ATCA_SHA1_DIGEST_SI ATCA_STATUS atcac_sw_sha1(const uint8_t* data, size_t data_size, uint8_t digest[ATCA_SHA1_DIGEST_SIZE]) { ATCA_STATUS ret; - atcac_sha1_ctx ctx; + atcac_sha1_ctx_t ctx; ret = atcac_sw_sha1_init(&ctx); if (ret != ATCA_SUCCESS) diff --git a/lib/crypto/atca_crypto_sw_sha2.c b/lib/crypto/atca_crypto_sw_sha2.c index 59deb96f2..572f541e6 100644 --- a/lib/crypto/atca_crypto_sw_sha2.c +++ b/lib/crypto/atca_crypto_sw_sha2.c @@ -27,19 +27,22 @@ #include "cryptoauthlib.h" #include "atca_crypto_sw_sha2.h" -#include "hashes/sha2_routines.h" +#include "cal_internal.h" #if ATCA_CRYPTO_SHA2_EN +#include "hashes/sha2_routines.h" + /** \brief initializes the SHA256 software * \param[in] ctx ptr to context data structure * \return ATCA_SUCCESS on success, otherwise an error code. */ -ATCA_STATUS atcac_sw_sha2_256_init(atcac_sha2_256_ctx* ctx) +ATCA_STATUS atcac_sw_sha2_256_init(struct atcac_sha2_256_ctx* ctx) { - if (sizeof(sw_sha256_ctx) > sizeof(atcac_sha2_256_ctx)) + if (sizeof(sw_sha256_ctx) > sizeof(atcac_sha2_256_ctx_t)) { - return ATCA_ASSERT_FAILURE; // atcac_sha1_ctx isn't large enough for this implementation + // atcac_sha2_256_ctx_t isn't large enough for this implementation + return ATCA_ASSERT_FAILURE; } sw_sha256_init((sw_sha256_ctx*)ctx); @@ -54,7 +57,7 @@ ATCA_STATUS atcac_sw_sha2_256_init(atcac_sha2_256_ctx* ctx) \return ATCA_SUCCESS */ -ATCA_STATUS atcac_sw_sha2_256_update(atcac_sha2_256_ctx* ctx, const uint8_t* data, size_t data_size) +ATCA_STATUS atcac_sw_sha2_256_update(struct atcac_sha2_256_ctx* ctx, const uint8_t* data, size_t data_size) { sw_sha256_update((sw_sha256_ctx*)ctx, data, (uint32_t)data_size); @@ -67,12 +70,24 @@ ATCA_STATUS atcac_sw_sha2_256_update(atcac_sha2_256_ctx* ctx, const uint8_t* dat * \return ATCA_SUCCESS */ -ATCA_STATUS atcac_sw_sha2_256_finish(atcac_sha2_256_ctx* ctx, uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]) +ATCA_STATUS atcac_sw_sha2_256_finish(struct atcac_sha2_256_ctx* ctx, uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]) { sw_sha256_final((sw_sha256_ctx*)ctx, digest); return ATCA_SUCCESS; } + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_sha2_256_ctx * atcac_sha256_ctx_new(void) +{ + return (struct atcac_sha2_256_ctx*)hal_malloc(sizeof(atcac_sha2_256_ctx_t)); +} +void atcac_sha256_ctx_free(struct atcac_sha2_256_ctx * ctx) +{ + hal_free(ctx); +} +#endif + #endif /* ATCA_CRYPTO_SHA2_EN */ #if ATCAC_SHA256_EN @@ -85,7 +100,7 @@ ATCA_STATUS atcac_sw_sha2_256_finish(atcac_sha2_256_ctx* ctx, uint8_t digest[ATC ATCA_STATUS atcac_sw_sha2_256(const uint8_t* data, size_t data_size, uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]) { ATCA_STATUS ret; - atcac_sha2_256_ctx ctx; + atcac_sha2_256_ctx_t ctx; ret = atcac_sw_sha2_256_init(&ctx); if (ret != ATCA_SUCCESS) @@ -111,10 +126,10 @@ ATCA_STATUS atcac_sw_sha2_256(const uint8_t* data, size_t data_size, uint8_t dig * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_init( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ - const uint8_t* key, /**< [in] key value to use */ - const uint8_t key_len /**< [in] length of the key */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + struct atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ + const uint8_t* key, /**< [in] key value to use */ + const uint8_t key_len /**< [in] length of the key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -164,9 +179,9 @@ ATCA_STATUS atcac_sha256_hmac_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_update( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - const uint8_t* data, /**< [in] input data */ - size_t data_size /**< [in] length of input data */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + const uint8_t* data, /**< [in] input data */ + size_t data_size /**< [in] length of input data */ ) { return (ATCA_STATUS)atcac_sw_sha2_256_update(ctx->sha256_ctx, data, data_size); @@ -177,9 +192,9 @@ ATCA_STATUS atcac_sha256_hmac_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_finish( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - uint8_t* digest, /**< [out] hmac value */ - size_t* digest_len /**< [inout] length of hmac */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + uint8_t* digest, /**< [out] hmac value */ + size_t* digest_len /**< [inout] length of hmac */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -200,46 +215,103 @@ ATCA_STATUS atcac_sha256_hmac_finish( } return status; } + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_hmac_ctx * atcac_hmac_ctx_new(void) +{ + return (struct atcac_hmac_ctx*)hal_malloc(sizeof(atcac_hmac_ctx_t)); +} +void atcac_hmac_ctx_free(struct atcac_hmac_ctx * ctx) +{ + hal_free(ctx); +} +#endif + #endif /* ATCA_CRYPTO_SHA2_HMAC_EN */ #if ATCA_CRYPTO_SHA2_HMAC_CTR_EN -/** \brief Implements SHA256 HMAC-Counter per NIST SP 800-108 used for KDF like operations */ -ATCA_STATUS atcac_sha256_hmac_counter( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - uint8_t * label, /**< [in] kdf label string */ - size_t label_len, /**< [in] kdf label string length in bytes (does not include a terminating null) */ - uint8_t * data, /**< [in] Additional mix-in data */ - size_t data_len, /**< [in] data length in bytes */ - uint8_t * digest, /**< [out] resulting digest/key */ - size_t diglen /**< [out] desired length of the result (in bytes). May not exceed SHA256 digest length */ +/** \brief Calculates one iteration of SHA256 HMAC-Counter per NIST SP 800-108 used for KDF like operations */ +ATCA_STATUS atcac_sha256_hmac_ctr_iteration( + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + uint8_t iteration, /**< [in] Iteration of the KDF to calculate */ + uint16_t length, /**< [in] Total legth of the key in bits - not the length of this iteration */ + const uint8_t* label, /**< [in] kdf label string */ + size_t label_len, /**< [in] kdf label string length in bytes (does not include a terminating null) */ + const uint8_t * data, /**< [in] Additional mix-in data */ + size_t data_len, /**< [in] data length in bytes */ + uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE] /**< [out] resulting digest/key (must be ATCA_SHA2_256_DIGEST_SIZE bytes) */ ) { - ATCA_STATUS ret = ATCA_GEN_FAIL; - - if (diglen > ATCA_SHA2_256_DIGEST_SIZE) - { - return ATCA_BAD_PARAM; - } + ATCA_STATUS ret = ATCA_BAD_PARAM; if (NULL != ctx) { - uint32_t tmp = 1; + size_t diglen = ATCA_SHA2_256_DIGEST_SIZE; - (void)atcac_sha256_hmac_update(ctx, (uint8_t*)&tmp, 1); + (void)atcac_sha256_hmac_update(ctx, &iteration, 1); (void)atcac_sha256_hmac_update(ctx, label, label_len); - tmp = 0; - (void)atcac_sha256_hmac_update(ctx, (uint8_t*)&tmp, 1); + iteration = 0; + (void)atcac_sha256_hmac_update(ctx, &iteration, 1); (void)atcac_sha256_hmac_update(ctx, data, data_len); -#ifdef ATCA_KDF_HMAC_COUNTER_LEN_IN_BYTES - tmp = ATCA_UINT16_HOST_TO_BE((uint16_t)(diglen & UINT16_MAX)); -#else - tmp = ATCA_UINT16_HOST_TO_BE((uint16_t)((diglen * 8u) & UINT16_MAX)); -#endif - (void)atcac_sha256_hmac_update(ctx, (uint8_t*)&tmp, 2); + + length = ATCA_UINT16_HOST_TO_BE(length); + (void)atcac_sha256_hmac_update(ctx, (uint8_t*)&length, 2); ret = atcac_sha256_hmac_finish(ctx, digest, &diglen); } + return ret; } + +/** \brief Implements SHA256 HMAC-Counter per NIST SP 800-108 used for KDF like operations */ +ATCA_STATUS atcac_sha256_hmac_counter( + uint8_t * key, /**< [in] Source Key */ + size_t key_len, /**< [in] Source Key Length (bytes) */ + const uint8_t * label, /**< [in] kdf label string */ + size_t label_len, /**< [in] kdf label string length (bytes - does not include a terminating null) */ + const uint8_t * data, /**< [in] Context data */ + size_t data_len, /**< [in] Context data length (bytes) */ + uint8_t * digest, /**< [out] Resulting generated key material */ + size_t diglen /**< [out] desired length of the result (bytes). */ + ) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if ((diglen > 0x1F00U) || (key_len > ATCA_SHA2_256_BLOCK_SIZE)) + { + return status; + } + + uint8_t ctr = 1; + uint16_t length = (uint16_t)((diglen * 8u) & UINT16_MAX); + uint8_t tmp_dig[ATCA_SHA2_256_DIGEST_SIZE] = { 0 }; + + do + { + atcac_hmac_ctx_t hmac_ctx; + atcac_sha2_256_ctx_t sha256_ctx; + + (void)atcac_sha256_hmac_init(&hmac_ctx, &sha256_ctx, key, (uint8_t)key_len); + + status = atcac_sha256_hmac_ctr_iteration(&hmac_ctx, ctr, length, label, + label_len, data, data_len, tmp_dig); + + if (ATCA_SHA2_256_DIGEST_SIZE <= diglen) + { + (void)memcpy(digest, tmp_dig, ATCA_SHA2_256_DIGEST_SIZE); + diglen -= ATCA_SHA2_256_DIGEST_SIZE; + digest += ATCA_SHA2_256_DIGEST_SIZE; + } + else + { + (void)memcpy(digest, tmp_dig, diglen); + diglen = 0; + } + ctr++; + } + while ((ATCA_SUCCESS == status) && (0U < diglen) && (ctr < 255U)); + + return status; +} #endif /* ATCA_CRYPTO_SHA2_HMAC_CTR_EN */ diff --git a/lib/crypto/atca_crypto_sw_sha2.h b/lib/crypto/atca_crypto_sw_sha2.h index 04b857cce..9938a4026 100644 --- a/lib/crypto/atca_crypto_sw_sha2.h +++ b/lib/crypto/atca_crypto_sw_sha2.h @@ -45,8 +45,13 @@ extern "C" { #endif ATCA_STATUS atcac_sw_sha2_256(const uint8_t * data, size_t data_size, uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]); -ATCA_STATUS atcac_sha256_hmac_counter(atcac_hmac_sha256_ctx* ctx, uint8_t* label, size_t label_len, - uint8_t* data, size_t data_len, uint8_t* digest, size_t diglen); + +ATCA_STATUS atcac_sha256_hmac_ctr_iteration(struct atcac_hmac_ctx* ctx, uint8_t iteration, uint16_t length, + const uint8_t* label, size_t label_len, const uint8_t * data, size_t data_len, + uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]); + +ATCA_STATUS atcac_sha256_hmac_counter(uint8_t * key, size_t key_len, const uint8_t* label, size_t label_len, + const uint8_t* data, size_t data_len, uint8_t* digest, size_t diglen); #ifdef __cplusplus } diff --git a/lib/crypto/crypto_hw_config_check.h b/lib/crypto/crypto_hw_config_check.h new file mode 100644 index 000000000..0ef7499a4 --- /dev/null +++ b/lib/crypto/crypto_hw_config_check.h @@ -0,0 +1,197 @@ +/** + * \file + * \brief Consistency checks for configuration options + * + * \copyright (c) 2015-2021 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef CRYPTO_HW_CONFIG_CHECK_H +#define CRYPTO_HW_CONFIG_CHECK_H + +#include "atca_config_check.h" + +#if ATCA_CA_SUPPORT +#include "calib/calib_config_check.h" +#endif + +#if ATCA_TA_SUPPORT +#include "talib/talib_config_check.h" +#endif + +/** \def ATCAB_AES_EXTRAS_EN + * + * Automatically set base on other configuation options but can be overridden to disable all + * CBC, CBCMAC, CTR, & CCM modes at once rather than individually + */ +#ifndef ATCAB_AES_EXTRAS_EN +#define ATCAB_AES_EXTRAS_EN (CALIB_AES_EN || TALIB_AES_EN) +#endif + +#ifndef ATCAB_AES_RANDOM_IV_EN +#define ATCAB_AES_RANDOM_IV_EN (ATCA_HOSTLIB_EN || CALIB_RANDOM_EN || TALIB_RANDOM_EN) +#endif + +/** \def ATCAB_AES_UPDATE_EN + * Enable update/finalize APIs for block ciphers + */ +#ifndef ATCAB_AES_UPDATE_EN +#define ATCAB_AES_UPDATE_EN ATCAB_AES_EXTRAS_EN +#endif + +/****** ATCA_CRYPTO_HW_AES_CBC ******/ + +/** \def ATCAB_AES_CBC_ENCRYPT_EN + * + * Requires: ATCAB_AES_EN + * + * Enable ATCAB_AES_CBC_ENCRYPT_EN to encrypt a block of data using CBC mode and a key within the + * device. atcab_aes_cbc_init() should be called before the first use of this function + * + * Supported API's: atcab_aes_cbc_encrypt_block , atcab_aes_cbc_init_ext, atcab_aes_cbc_init + **/ +#ifndef ATCAB_AES_CBC_ENCRYPT_EN +#define ATCAB_AES_CBC_ENCRYPT_EN ATCAB_AES_EXTRAS_EN +#endif + +/** \def ATCAB_AES_CBC_DECRYPT_EN + * + * Requires: ATCAB_AES_EN + * + * Enable ATCAB_AES_CBC_DECRYPT to decrypt a block of data using CBC mode and a key within the + * device. atcab_aes_cbc_init() should be called before the first use of this function + * + * Supported API's: atcab_aes_cbc_decrypt_block, atcab_aes_cbc_init_ext, atcab_aes_cbc_init + **/ +#ifndef ATCAB_AES_CBC_DECRYPT_EN +#define ATCAB_AES_CBC_DECRYPT_EN ATCAB_AES_EXTRAS_EN +#endif + +#ifndef ATCAB_AES_CBC_UPDATE_EN +#define ATCAB_AES_CBC_UPDATE_EN ATCAB_AES_UPDATE_EN +#endif + +/****** ATCA_CRYPTO_HW_AES_CBCMAC ******/ + +/** \def ATCAB_AES_CBCMAC_EN + * + * Requires: ATCAB_AES_CBCMAC + * ATCAB_AES_CBC_ENCRYPT + * ATCAB_AES_MODE_ENCODING + * CALIB_AES_MODE_ENCODING + * CALIB_AES + * + * Enable ATCAB_AES_CBCMAC to initialize context for AES CBC-MAC operation + * Enable ATCAB_AES_CBCMAC to calculate AES CBC-MAC with key stored within ECC608 device + * Enable ATCAB_AES_CBCMAC to finish a CBC-MAC operation returning the CBC-MAC value + * + * Supported API's: atcab_aes_cbcmac_init_ext + * atcab_aes_cbcmac_init, atcab_aes_cbcmac_init_update, atcab_aes_cbcmac_finish + **/ +#ifndef ATCAB_AES_CBCMAC_EN +#define ATCAB_AES_CBCMAC_EN ATCAB_AES_CBC_ENCRYPT_EN +#endif + +/****** ATCA_CRYPTO_HW_AES_CTR ******/ + +/** \def ATCAB_AES_CTR_EN + * + * Requires: ATCAB_AES_EN + * + * Enable ATCAB_AES_CTR_EN to support AES-CTR mode + * + **/ +#ifndef ATCAB_AES_CTR_EN +#define ATCAB_AES_CTR_EN ATCAB_AES_EXTRAS_EN +#endif + +/** \def ATCAB_AES_CTR_RAND_IV_EN + * + * Requires: ATCAB_AES_CTR_EN + * ATCAB_RANDOM_EN + * + * Enable ATCAB_AES_CTR_RAND_IV_EN to initialize context for AES CTR operation with a random nonce and + * counter set to 0 as the IV, which is common when starting an encrypt operation + * + * Supported API's: atcab_aes_ctr_init_rand_ext, atcab_aes_ctr_init_rand + **/ +#ifndef ATCAB_AES_CTR_RAND_IV_EN +#define ATCAB_AES_CTR_RAND_IV_EN (ATCAB_AES_CTR_EN && ATCAB_AES_RANDOM_IV_EN) +#endif + +/****** ATCA_CRYPTO_HW_AES_CCM ******/ + +/** \def ATCAB_AES_CCM_EN + * + * Requires: ATCAB_AES_EN + * ATCAB_AES_CTR_EN + * + * Enable ATCAB_AES_CCM_EN to enable AES CCM operation + * + **/ +#ifndef ATCAB_AES_CCM_EN +#define ATCAB_AES_CCM_EN (ATCAB_AES_CBCMAC_EN && ATCAB_AES_CTR_EN) +#endif + +/** \def ATCAB_AES_CCM_INIT_RAND + * + * Requires: ATCAB_AES_CCM_INIT_RAND + * ATCAB_AES_CCM_INIT + * ATCAB_RANDOM + * CALIB_RANDOM + * + * Enable ATCAB_AES_CCM_INIT_RAND to initialize context for AES CCM operation with a random nonce + * + * Supported API's: atcab_aes_ccm_init_rand_ext + * atcab_aes_ccm_init_rand + **/ +#ifndef ATCAB_AES_CCM_RAND_IV_EN +#define ATCAB_AES_CCM_RAND_IV_EN (ATCAB_AES_CCM_EN && ATCAB_AES_RANDOM_IV_EN) +#endif + +/****** ATCA_CRYPTO_HW_AES_CMAC ******/ + +/** \def ATCAB_AES_CMAC + * + * Requires: ATCAB_AES_CMAC + * ATCAB_AES_CBC_ENCRYPT + * ATCAB_AES_MODE_ENCODING + * CALIB_AES_MODE_ENCODING + * CALIB_AES + * + * Enable ATCAB_AES_CMAC to initialize a CMAC calculation using an AES-128 key in the device + * Enable ATCAB_AES_CMAC to add data to an initialized CMAC calculation + * Enable ATCAB_AES_CMAC to finish a CMAC operation returning the CMAC value + * + * Supported API's: atcab_aes_cmac_init_ext, left_shift_one + * atcab_aes_cmac_init, atcab_aes_cmac_init_update, atcab_aes_cmac_finish + **/ +#ifndef ATCAB_AES_CMAC_EN +#define ATCAB_AES_CMAC_EN ATCAB_AES_CBC_ENCRYPT_EN +#endif + +/****** ATCA_CRYPTO_PKCS7_PADDING ******/ +#ifndef ATCAC_PKCS7_PAD_EN +#define ATCAC_PKCS7_PAD_EN ATCAB_AES_EXTRAS_EN +#endif + +#endif /* CRYPTO_HW_CONFIG_CHECK_H */ diff --git a/lib/crypto/crypto_sw_config_check.h b/lib/crypto/crypto_sw_config_check.h new file mode 100644 index 000000000..b0f649b34 --- /dev/null +++ b/lib/crypto/crypto_sw_config_check.h @@ -0,0 +1,201 @@ +/** + * \file + * \brief Consistency checks for configuration options + * + * \copyright (c) 2015-2021 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef CRYPTO_CONFIG_CHECK_H +#define CRYPTO_CONFIG_CHECK_H + +#include "atca_config_check.h" + +#if ATCA_HOSTLIB_EN +#if defined(ATCA_MBEDTLS) +#include "mbedtls/atca_mbedtls_interface.h" +#elif defined(ATCA_WOLFSSL) +#include "wolfssl/atca_wolfssl_interface.h" +#elif defined(ATCA_OPENSSL) +#include "openssl/atca_openssl_interface.h" +#endif +#endif + +/* Host side Cryptographic functionality required by the library */ + +/** \def ATCAC_SHA1_EN + * + * Enable ATCAC_SHA1_EN to enable sha1 host side api + * + * Supported API's: atcab_write + **/ +#ifndef ATCAC_SHA1_EN +#define ATCAC_SHA1_EN (DEFAULT_ENABLED) +#endif + +/** \def ATCAC_SHA256_EN + * + * Enable ATCAC_SHA256_EN to enable sha256 host side api + * + * Supported API's: atcab_write + **/ +#ifndef ATCAC_SHA256_EN +#define ATCAC_SHA256_EN (DEFAULT_ENABLED) +#endif + +/** \def ATCAC_SHA256_HMAC + * + * Requires: ATCAC_SHA256_HMAC + * ATCAC_SW_SHA2_256 + * + * Enable ATCAC_SHA256_HMAC to initialize context for performing HMAC (sha256) in software + * + * Supported API's: atcac_sha256_hmac_init, atcac_sha256_hmac_update, atcac_sha256_hmac_finish + **/ +#ifndef ATCAC_SHA256_HMAC_EN +#define ATCAC_SHA256_HMAC_EN ATCAC_SHA256_EN +#endif + +/** \def ATCAC_SHA256_HMAC_COUNTER + * + * Requires: ATCAC_SHA256_HMAC_COUNTER + * ATCAC_SHA256_HMAC + * ATCAC_SW_SHA2_256 + * + * Enable ATCAC_SHA256_HMAC_COUNTER to implement SHA256 HMAC-Counter per NIST SP 800-108 used for + * KDF like operations + * + * Supported API's: atcac_sha256_hmac_counter + **/ +#ifndef ATCAC_SHA256_HMAC_CTR_EN +#define ATCAC_SHA256_HMAC_CTR_EN ATCAC_SHA256_HMAC_EN +#endif + +/** \def ATCAC_RANDOM_EN + * + * Requires: ATCA_HOSTLIB_EN + * + * Enable ATCAC_RANDOM_EN get random numbers from the host's + * implementation - generally assumed to come from the host's + * cryptographic library or peripheral driver + * + */ +#ifndef ATCAC_RANDOM_EN +#define ATCAC_RANDOM_EN ATCA_HOSTLIB_EN +#endif + +/** \def ATCAC_VERIFY_EN + * + * Requires: ATCA_HOSTLIB_EN + * + * Enable ATCAC_VERIFY_EN to use the host's verify functions. Generally assumed + * to come from the host's cryptographic library or peripheral driver. + */ +#ifndef ATCAC_VERIFY_EN +#define ATCAC_VERIFY_EN ATCA_HOSTLIB_EN +#endif + +/** \def ATCAC_SIGN_EN + * + * Requires: ATCA_HOSTLIB_EN + * + * Enable ATCAC_SIGN_EN to use the host's sign functions. Generally assumed + * to come from the host's cryptographic library or peripheral driver. + */ +#ifndef ATCAC_SIGN_EN +#define ATCAC_SIGN_EN ATCA_HOSTLIB_EN +#endif + +/** \def ATCA_CRYPTO_SHA1_EN + * + * Enable ATCAC_SHA1_EN to enable sha1 host side api + * + * Supported API's: atcab_write + **/ +#ifndef ATCA_CRYPTO_SHA1_EN +#define ATCA_CRYPTO_SHA1_EN (ATCAC_SHA1_EN && !ATCA_HOSTLIB_EN) +#endif + +/** \def ATCAC_SHA256_EN + * + * Enable ATCAC_SHA256_EN to enable sha256 host side api + * + * Supported API's: atcab_write + **/ +#ifndef ATCA_CRYPTO_SHA2_EN +#define ATCA_CRYPTO_SHA2_EN (ATCAC_SHA256_EN && !ATCA_HOSTLIB_EN) +#endif + +/** \def ATCA_CRYPTO_SHA2_HMAC_EN + * + * Requires: ATCAC_SHA256_EN + * + * Enable ATCAC_SHA256_HMAC to initialize context for performing HMAC (sha256) in software + * + * Supported API's: atcac_sha256_hmac_init, atcac_sha256_hmac_update, atcac_sha256_hmac_finish + **/ +#ifndef ATCA_CRYPTO_SHA2_HMAC_EN +#define ATCA_CRYPTO_SHA2_HMAC_EN (ATCAC_SHA256_HMAC_EN && !ATCA_HOSTLIB_EN) +#endif + +/** \def ATCA_CRYPTO_SHA2_HMAC_CTR_EN + * + * Requires: ATCAC_SHA256_HMAC_EN + * + * Enable ATCAC_SHA256_HMAC_COUNTER to implement SHA256 HMAC-Counter per NIST SP 800-108 used for + * KDF like operations + * + * Supported API's: atcac_sha256_hmac_counter + **/ +#ifndef ATCA_CRYPTO_SHA2_HMAC_CTR_EN +#define ATCA_CRYPTO_SHA2_HMAC_CTR_EN ATCAC_SHA256_HMAC_CTR_EN +#endif + +/****** ATCA_CRYPTO_PBKDF2 ******/ + +/** \def ATCAC_PBKDF2_SHA256_EN + * + * Requires: ATCAC_SHA256_EN + * ATCAC_SHA256_HMAC_EN + * + * Enable ATCAC_PBKDF2_SHA256_EN to calculate a PBKDF2 hash of a given password and salt + * + * Supported API's: atcac_pbkdf2_256 + **/ +#ifndef ATCAC_PBKDF2_SHA256_EN +#define ATCAC_PBKDF2_SHA256_EN ATCAC_SHA256_HMAC_EN +#endif + +/** \def ATCAB_PBKDF2_SHA256_EN + * + * Requires: CALIB_SHA_HMAC_EN + * + * Enable ATCAB_PBKDF2_SHA256_EN to calculate a PBKDF2 password hash using a stored key inside a + * device. The key length is determined by the device being used. ECCx08: 32 bytes, TA100: 16-64 bytes + * + * Supported API's: atcab_pbkdf2_256, atcab_pbkdf2_256_ext + **/ +#ifndef ATCAB_PBKDF2_SHA256_EN +#define ATCAB_PBKDF2_SHA256_EN (CALIB_SHA_HMAC_EN || TALIB_SHA_HMAC_EN) +#endif + +#endif /* CRYPTO_CONFIG_CHECK_H */ diff --git a/lib/cryptoauthlib.h b/lib/cryptoauthlib.h index 04e74a9fe..aefd9ceb8 100644 --- a/lib/cryptoauthlib.h +++ b/lib/cryptoauthlib.h @@ -43,6 +43,7 @@ #include "atca_platform.h" #include "atca_status.h" #include "atca_debug.h" +#include "cal_buffer.h" #include "atca_iface.h" #include "atca_device.h" #include "atca_helpers.h" @@ -52,9 +53,18 @@ #define ATCA_SHA256_BLOCK_SIZE (64u) #define ATCA_SHA256_DIGEST_SIZE (32u) +#define ATCA_SHA384_BLOCK_SIZE (128u) +#define ATCA_SHA384_DIGEST_SIZE (48u) + +#define ATCA_SHA512_BLOCK_SIZE (128u) +#define ATCA_SHA512_DIGEST_SIZE (64u) + #define ATCA_AES128_BLOCK_SIZE (16u) #define ATCA_AES128_KEY_SIZE (16) +#define ATCA_AES256_BLOCK_SIZE (16u) +#define ATCA_AES256_KEY_SIZE (32u) + #define ATCA_ECCP256_KEY_SIZE (32) #define ATCA_ECCP256_PUBKEY_SIZE (64) #define ATCA_ECCP256_SIG_SIZE (64u) diff --git a/lib/hal/atca_hal.c b/lib/hal/atca_hal.c index c0336c5a7..453829a2c 100644 --- a/lib/hal/atca_hal.c +++ b/lib/hal/atca_hal.c @@ -94,7 +94,7 @@ static ATCAHAL_t hal_spi = { }; #endif -#if defined(ATCA_HAL_GPIO) || defined(ATCA_HAL_BB) +#if defined(ATCA_HAL_SWI_GPIO) || defined(ATCA_HAL_SWI_BB) static ATCAHAL_t hal_gpio = { hal_gpio_init, hal_gpio_post_init, diff --git a/lib/hal/atca_hal.h b/lib/hal/atca_hal.h index e8a29d347..038681b21 100644 --- a/lib/hal/atca_hal.h +++ b/lib/hal/atca_hal.h @@ -110,7 +110,7 @@ ATCA_STATUS hal_swi_gpio_release(void *hal_data); ATCA_STATUS hal_swi_gpio_control(ATCAIface iface, uint8_t option, void* param, size_t paramlen); #endif -#if defined(ATCA_HAL_GPIO) || defined(ATCA_HAL_BB) +#if defined(ATCA_HAL_SWI_GPIO) || defined(ATCA_HAL_SWI_BB) ATCA_STATUS hal_gpio_init(ATCAIface iface, ATCAIfaceCfg *cfg); ATCA_STATUS hal_gpio_post_init(ATCAIface iface); ATCA_STATUS hal_gpio_send(ATCAIface iface, uint8_t word_address, uint8_t* pin_state, int unused_param); @@ -224,7 +224,7 @@ void hal_rtos_delay_ms(uint32_t ms); #endif #if defined(__linux__) || defined(__APPLE__) - #if ATCA_USE_SHARED_MUTEX + #ifdef ATCA_USE_SHARED_MUTEX #include /** \brief Structure for holding a mutex in shared memory on linux */ typedef struct diff --git a/lib/hal/hal_esp32_timer.c b/lib/hal/hal_esp32_timer.c index 4a39f6b03..ee7196632 100644 --- a/lib/hal/hal_esp32_timer.c +++ b/lib/hal/hal_esp32_timer.c @@ -27,4 +27,4 @@ void hal_delay_us(uint32_t delay) void hal_delay_ms(uint32_t msec) { ets_delay_us(msec * 1000); -} \ No newline at end of file +} diff --git a/lib/hal/hal_i2c_start.c b/lib/hal/hal_i2c_start.c index 93284f44c..590e8b413 100644 --- a/lib/hal/hal_i2c_start.c +++ b/lib/hal/hal_i2c_start.c @@ -269,7 +269,7 @@ ATCA_STATUS hal_i2c_receive(ATCAIface iface, uint8_t word_address, uint8_t *rxda } /*Calculate bytes to read based on device response*/ - if (cfg->devtype == TA100) + if (atcab_is_ta_device(cfg->devtype)) { read_length = ((uint16_t)rxdata[0] * 256) + rxdata[1]; min_resp_size += 1; diff --git a/lib/hal/hal_linux.c b/lib/hal/hal_linux.c index e9d8297fb..7ae457e2b 100644 --- a/lib/hal/hal_linux.c +++ b/lib/hal/hal_linux.c @@ -72,7 +72,7 @@ void hal_delay_ms(uint32_t delay) #ifndef ATCA_USE_RTOS_TIMER -#if ATCA_USE_SHARED_MUTEX +#ifdef ATCA_USE_SHARED_MUTEX #include #include diff --git a/lib/hal/hal_sam0_i2c_asf.c b/lib/hal/hal_sam0_i2c_asf.c index a5adf2d78..12699c3ce 100644 --- a/lib/hal/hal_sam0_i2c_asf.c +++ b/lib/hal/hal_sam0_i2c_asf.c @@ -255,7 +255,7 @@ ATCA_STATUS hal_i2c_receive(ATCAIface iface, uint8_t word_address, uint8_t *rxda } /*Calculate bytes to read based on device response*/ - if (cfg->devtype == TA100) + if (atcab_is_ta_device(cfg->devtype)) { read_length = ((uint16_t)rxdata[0] * 256) + rxdata[1]; min_resp_size += 1; diff --git a/lib/hal/hal_sam_i2c_asf.c b/lib/hal/hal_sam_i2c_asf.c index 542c8fe72..aaf0b7df4 100644 --- a/lib/hal/hal_sam_i2c_asf.c +++ b/lib/hal/hal_sam_i2c_asf.c @@ -280,7 +280,7 @@ ATCA_STATUS hal_i2c_receive(ATCAIface iface, uint8_t word_address, uint8_t *rxda } /*Calculate bytes to read based on device response*/ - if (cfg->devtype == TA100) + if (atcab_is_ta_device(cfg->devtype)) { read_length = ((uint16_t)rxdata[0] * 256) + rxdata[1]; min_response_size += 1; diff --git a/lib/hal/hal_spi_harmony.c b/lib/hal/hal_spi_harmony.c index 5c7e8b8c9..e68695a92 100644 --- a/lib/hal/hal_spi_harmony.c +++ b/lib/hal/hal_spi_harmony.c @@ -43,7 +43,7 @@ /** \defgroup hal_ Hardware abstraction layer (hal_) * * \brief - * These methods define the hardware abstraction layer for communicating with a TA100 device + * These methods define the hardware abstraction layer for communicating with a TA10x device * @{ */ @@ -68,8 +68,8 @@ ATCA_STATUS hal_spi_discover_buses(int spi_buses[], int max_buses) return ATCA_SUCCESS; } -/** \brief discover any TA100 devices on a given logical bus number - * \param[in] bus_num logical bus number on which to look for TA100 devices +/** \brief discover any TA10x devices on a given logical bus number + * \param[in] bus_num logical bus number on which to look for TA10x devices * \param[out] cfg pointer to head of an array of interface config structures which get filled in by this method * \param[out] found number of devices found on this bus * \return ATCA_SUCCESS diff --git a/lib/hal/hal_uc3_i2c_asf.c b/lib/hal/hal_uc3_i2c_asf.c index e80e3f5ca..fcc6634ab 100644 --- a/lib/hal/hal_uc3_i2c_asf.c +++ b/lib/hal/hal_uc3_i2c_asf.c @@ -280,7 +280,7 @@ ATCA_STATUS hal_i2c_receive(ATCAIface iface, uint8_t word_address, uint8_t *rxda } /*Calculate bytes to read based on device response*/ - if (cfg->devtype == TA100) + if (atcab_is_ta_device(cfg->devtype)) { read_length = ((uint16_t)rxdata[0] * 256) + rxdata[1]; min_response_size += 1; diff --git a/lib/hal/kit_protocol.c b/lib/hal/kit_protocol.c index df0157c90..83e7ba2ff 100644 --- a/lib/hal/kit_protocol.c +++ b/lib/hal/kit_protocol.c @@ -528,7 +528,7 @@ ATCA_STATUS kit_post_init(ATCAIface iface) } /** \brief The function send word address byte of atreceive to kit protocol to receive - * response from device. This function call takes place only when target device is TA100. + * response from device. This function call takes place only when target device is TA10x. * \param[in] iface instance * \param[in] word_address device transaction type * \param[in,out] rxsize ptr to expected number of receive bytes to request @@ -552,7 +552,7 @@ static ATCA_STATUS kit_ta_send_to_receive(ATCAIface iface, uint8_t word_address, } /** \brief The function receive a response for send command from kit protocol whether success or not. - * This function call takes place only when target device is TA100. + * This function call takes place only when target device is TA10x. * \param[in] iface instance * \return ATCA_SUCCESS on success, otherwise an error code. */ @@ -641,7 +641,7 @@ ATCA_STATUS kit_send(ATCAIface iface, uint8_t word_address, uint8_t* txdata, int } // Receive the reply to send "00()\n" - if (strncmp(target, "TA100", 3) == 0) + if (strncmp(target, "TA10x", 3) == 0) { status = kit_ta_receive_send_rsp(iface); } @@ -682,7 +682,7 @@ ATCA_STATUS kit_receive(ATCAIface iface, uint8_t word_address, uint8_t* rxdata, } target = kit_id_from_devtype(iface->mIfaceCFG->devtype); - if (strncmp(target, "TA100", 3) == 0) + if (strncmp(target, "TA10x", 3) == 0) { // Send word address byte to kit protocol to receive a response from device if (ATCA_SUCCESS != (status = kit_ta_send_to_receive(iface, word_address, rxsize))) @@ -884,7 +884,7 @@ ATCA_STATUS kit_wrap_cmd(const uint8_t* txdata, int txlen, char* pkitcmd, int* n ATCA_STATUS status = ATCA_SUCCESS; const char* ta_cmdpre = "t:send("; const char* ca_cmdpre = "d:t("; - const char* cmdpre = (strncmp(target, "TA100", 3) != 0) ? ca_cmdpre : ta_cmdpre; + const char* cmdpre = (strncmp(target, "TA10x", 3) != 0) ? ca_cmdpre : ta_cmdpre; char cmdpost[] = ")\n"; size_t cpylen = 0U; size_t cpyindex = 0U; diff --git a/lib/host/atca_host.c b/lib/host/atca_host.c index 792bf507c..b38a788df 100644 --- a/lib/host/atca_host.c +++ b/lib/host/atca_host.c @@ -27,6 +27,7 @@ #include "atca_host.h" #include "crypto/atca_crypto_sw_sha2.h" +#include "cal_internal.h" #if ATCA_CA_SUPPORT @@ -250,7 +251,7 @@ ATCA_STATUS atcah_nonce(struct atca_nonce_in_out *param) #if ATCAH_IO_DECRYPT ATCA_STATUS atcah_io_decrypt(struct atca_io_decrypt_in_out *param) { - atcac_sha2_256_ctx ctx; + atcac_sha2_256_ctx_t ctx; uint8_t key[ATCA_KEY_SIZE] = { 0 }; size_t block = 0; uint32_t i; @@ -294,7 +295,7 @@ ATCA_STATUS atcah_verify_mac(atca_verify_mac_in_out_t *param) { uint8_t verify_mode = (param->mode & VERIFY_MODE_MASK); uint8_t verify_source = (param->mode & VERIFY_MODE_SOURCE_MASK); - atcac_sha2_256_ctx ctx; + atcac_sha2_256_ctx_t ctx; uint8_t message[32]; const uint8_t* nonce = NULL; uint8_t input_params[4]; @@ -382,7 +383,7 @@ ATCA_STATUS atcah_verify_mac(atca_verify_mac_in_out_t *param) #if ATCAH_SECUREBOOT_ENC ATCA_STATUS atcah_secureboot_enc(atca_secureboot_enc_in_out_t* param) { - atcac_sha2_256_ctx ctx; + atcac_sha2_256_ctx_t ctx; size_t i; // Check parameters @@ -420,7 +421,7 @@ ATCA_STATUS atcah_secureboot_enc(atca_secureboot_enc_in_out_t* param) #if ATCAH_SECUREBOOT_MAC ATCA_STATUS atcah_secureboot_mac(atca_secureboot_mac_in_out_t *param) { - atcac_sha2_256_ctx ctx; + atcac_sha2_256_ctx_t ctx; uint8_t input_params[4]; if (param->hashed_key == NULL || param->digest == NULL || param->mac == NULL) diff --git a/lib/mbedtls/atca_mbedtls_interface.h b/lib/mbedtls/atca_mbedtls_interface.h new file mode 100644 index 000000000..8a56ee046 --- /dev/null +++ b/lib/mbedtls/atca_mbedtls_interface.h @@ -0,0 +1,106 @@ +/** + * \file + * \brief Configuration Check for MbedTLS Integration Support + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef ATCA_MBEDTLS_INTERFACE_H +#define ATCA_MBEDTLS_INTERFACE_H + +#include "atca_config_check.h" + +#ifdef ATCA_MBEDTLS + +#if !defined(ATCA_BUILD_SHARED_LIBS) && defined(ATCA_NO_HEAP) +#include "atca_mbedtls_wrap.h" +#endif + +/** \def ATCAC_SHA1_EN + * Indicates if this module is a provider of a SHA1 implementation + */ +#ifndef ATCAC_SHA1_EN +#if defined(MBEDTLS_CONFIG_H) && !defined(MBEDTLS_SHA1_C) +#define ATCAC_SHA1_EN (DEFAULT_DISABLED) +#else +#define ATCAC_SHA1_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_SHA1_EN */ + +/** \def ATCAC_SHA256_EN + * Indicates if this module is a provider of a SHA256 implementation + */ +#ifndef ATCAC_SHA256_EN +#if defined(MBEDTLS_CONFIG_H) && !defined(MBEDTLS_SHA256_C) +#define ATCAC_SHA256_EN (DEFAULT_DISABLED) +#else +#define ATCAC_SHA256_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_SHA256_EN */ + +/** \def ATCAC_AES_CMAC_EN + * Indicates if this module is a provider of an AES-CMAC implementation + */ +#ifndef ATCAC_AES_CMAC_EN +#if defined(MBEDTLS_CONFIG_H) && !defined(MBEDTLS_CMAC_C) +#define ATCAC_AES_CMAC_EN (DEFAULT_DISABLED) +#else +#define ATCAC_AES_CMAC_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_AES_CMAC_EN */ + +/** \def ATCAC_AES_GCM_EN + * Indicates if this module is a provider of an AES-GCM implementation + */ +#ifndef ATCAC_AES_GCM_EN +#if defined(MBEDTLS_CONFIG_H) && !defined(MBEDTLS_GCM_C) +#define ATCAC_AES_GCM_EN (DEFAULT_DISABLED) +#else +#define ATCAC_AES_GCM_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_AES_GCM_EN */ + +/** \def ATCAC_AES_GCM_UPDATE_EN + * Indicates if this module is a provider of an AES-GCM Update implementation + */ +#ifndef ATCAC_AES_GCM_UPDATE_EN +#define ATCAC_AES_GCM_UPDATE_EN (ATCAC_AES_GCM_EN) +#endif + +/** \def ATCAC_PKEY_EN + * Indicates if this module is a provider of a generic asymmetric cryptography + * implementation */ +#ifndef ATCAC_PKEY_EN +#define ATCAC_PKEY_EN (DEFAULT_ENABLED) +#endif + +/** \def HOSTLIB_CERT_EN + * Indicates if this module is a provider of x509 certificate handling + */ +#ifndef HOSTLIB_CERT_EN +#define HOSTLIB_CERT_EN (DEFAULT_DISABLED) +#endif + +#endif /* ATCA_MBEDTLS */ + +#endif /* ATCA_MBEDTLS_INTERFACE_H */ diff --git a/lib/mbedtls/atca_mbedtls_wrap.c b/lib/mbedtls/atca_mbedtls_wrap.c index a1400fa70..0e4a12911 100644 --- a/lib/mbedtls/atca_mbedtls_wrap.c +++ b/lib/mbedtls/atca_mbedtls_wrap.c @@ -27,6 +27,9 @@ */ /* mbedTLS boilerplate includes */ +#include "atca_config_check.h" + +#ifdef ATCA_MBEDTLS #if !defined(MBEDTLS_CONFIG_FILE) #include "mbedtls/config.h" @@ -71,22 +74,21 @@ int atcac_sw_random(uint8_t* data, size_t data_size) return mbedtls_ctr_drbg_random(mbedtls_entropy_func, data, data_size); } - /** \brief Update the GCM context with additional authentication data (AAD) * * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_aad_update( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* aad, /**< [in] Additional Authentication Data */ - const size_t aad_len /**< [in] Length of AAD */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* aad, /**< [in] Additional Authentication Data */ + const size_t aad_len /**< [in] Length of AAD */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - int ret = mbedtls_cipher_update_ad(ctx, aad, aad_len); + int ret = mbedtls_cipher_update_ad((mbedtls_cipher_context_t*)ctx, aad, aad_len); status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } return status; @@ -97,11 +99,11 @@ ATCA_STATUS atcac_aes_gcm_aad_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_encrypt_start( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* key, /**< [in] AES Key */ - const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ - const uint8_t* iv, /**< [in] Initialization vector input */ - const uint8_t iv_len /**< [in] Length of the initialization vector */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* key, /**< [in] AES Key */ + const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ + const uint8_t* iv, /**< [in] Initialization vector input */ + const uint8_t iv_len /**< [in] Length of the initialization vector */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -109,23 +111,23 @@ ATCA_STATUS atcac_aes_gcm_encrypt_start( if (ctx) { int ret; - mbedtls_cipher_init(ctx); + mbedtls_cipher_init((mbedtls_cipher_context_t*)ctx); - ret = mbedtls_cipher_setup(ctx, mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_GCM)); + ret = mbedtls_cipher_setup((mbedtls_cipher_context_t*)ctx, mbedtls_cipher_info_from_values(MBEDTLS_CIPHER_ID_AES, key_len * 8, MBEDTLS_MODE_GCM)); if (!ret) { - ret = mbedtls_cipher_setkey(ctx, key, key_len * 8, MBEDTLS_ENCRYPT); + ret = mbedtls_cipher_setkey((mbedtls_cipher_context_t*)ctx, key, key_len * 8, MBEDTLS_ENCRYPT); } if (!ret) { - ret = mbedtls_cipher_set_iv(ctx, iv, iv_len); + ret = mbedtls_cipher_set_iv((mbedtls_cipher_context_t*)ctx, iv, iv_len); } if (!ret) { - ret = mbedtls_cipher_reset(ctx); + ret = mbedtls_cipher_reset((mbedtls_cipher_context_t*)ctx); } status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; @@ -139,18 +141,18 @@ ATCA_STATUS atcac_aes_gcm_encrypt_start( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_encrypt_update( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* plaintext, /**< [in] Input buffer to encrypt */ - const size_t pt_len, /**< [in] Length of the input */ - uint8_t* ciphertext, /**< [out] Output buffer */ - size_t* ct_len /**< [inout] Length of the ciphertext buffer */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* plaintext, /**< [in] Input buffer to encrypt */ + const size_t pt_len, /**< [in] Length of the input */ + uint8_t* ciphertext, /**< [out] Output buffer */ + size_t* ct_len /**< [inout] Length of the ciphertext buffer */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - int ret = mbedtls_cipher_update(ctx, plaintext, pt_len, ciphertext, ct_len); + int ret = mbedtls_cipher_update((mbedtls_cipher_context_t*)ctx, plaintext, pt_len, ciphertext, ct_len); status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -162,18 +164,18 @@ ATCA_STATUS atcac_aes_gcm_encrypt_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_encrypt_finish( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - uint8_t* tag, /**< [out] GCM Tag Result */ - size_t tag_len /**< [in] Length of the GCM tag */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + uint8_t* tag, /**< [out] GCM Tag Result */ + size_t tag_len /**< [in] Length of the GCM tag */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - int ret = mbedtls_cipher_write_tag(ctx, tag, tag_len); + int ret = mbedtls_cipher_write_tag((mbedtls_cipher_context_t*)ctx, tag, tag_len); - mbedtls_cipher_free(ctx); + mbedtls_cipher_free((mbedtls_cipher_context_t*)ctx); status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -185,11 +187,11 @@ ATCA_STATUS atcac_aes_gcm_encrypt_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_decrypt_start( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* key, /**< [in] AES Key */ - const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ - const uint8_t* iv, /**< [in] Initialization vector input */ - const uint8_t iv_len /**< [in] Length of the initialization vector */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* key, /**< [in] AES Key */ + const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ + const uint8_t* iv, /**< [in] Initialization vector input */ + const uint8_t iv_len /**< [in] Length of the initialization vector */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -197,23 +199,23 @@ ATCA_STATUS atcac_aes_gcm_decrypt_start( if (ctx) { int ret; - mbedtls_cipher_init(ctx); + mbedtls_cipher_init((mbedtls_cipher_context_t*)ctx); - ret = mbedtls_cipher_setup(ctx, mbedtls_cipher_info_from_values(MBEDTLS_CIPHER_ID_AES, key_len * 8, MBEDTLS_MODE_GCM)); + ret = mbedtls_cipher_setup((mbedtls_cipher_context_t*)ctx, mbedtls_cipher_info_from_values(MBEDTLS_CIPHER_ID_AES, key_len * 8, MBEDTLS_MODE_GCM)); if (!ret) { - ret = mbedtls_cipher_setkey(ctx, key, key_len * 8, MBEDTLS_DECRYPT); + ret = mbedtls_cipher_setkey((mbedtls_cipher_context_t*)ctx, key, key_len * 8, MBEDTLS_DECRYPT); } if (!ret) { - ret = mbedtls_cipher_set_iv(ctx, iv, iv_len); + ret = mbedtls_cipher_set_iv((mbedtls_cipher_context_t*)ctx, iv, iv_len); } if (!ret) { - ret = mbedtls_cipher_reset(ctx); + ret = mbedtls_cipher_reset((mbedtls_cipher_context_t*)ctx); } status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; @@ -227,18 +229,18 @@ ATCA_STATUS atcac_aes_gcm_decrypt_start( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_decrypt_update( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* ciphertext, /**< [in] Ciphertext to decrypt */ - const size_t ct_len, /**< [in] Length of the ciphertext */ - uint8_t* plaintext, /**< [out] Resulting decrypted plaintext */ - size_t* pt_len /**< [inout] Length of the plaintext buffer */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* ciphertext, /**< [in] Ciphertext to decrypt */ + const size_t ct_len, /**< [in] Length of the ciphertext */ + uint8_t* plaintext, /**< [out] Resulting decrypted plaintext */ + size_t* pt_len /**< [inout] Length of the plaintext buffer */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - int ret = mbedtls_cipher_update(ctx, ciphertext, ct_len, plaintext, pt_len); + int ret = mbedtls_cipher_update((mbedtls_cipher_context_t*)ctx, ciphertext, ct_len, plaintext, pt_len); status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -250,10 +252,10 @@ ATCA_STATUS atcac_aes_gcm_decrypt_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_decrypt_finish( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* tag, /**< [in] GCM Tag to Verify */ - size_t tag_len, /**< [in] Length of the GCM tag */ - bool* is_verified /**< [out] Tag verified as matching */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* tag, /**< [in] GCM Tag to Verify */ + size_t tag_len, /**< [in] Length of the GCM tag */ + bool* is_verified /**< [out] Tag verified as matching */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -263,14 +265,14 @@ ATCA_STATUS atcac_aes_gcm_decrypt_finish( int ret; *is_verified = false; - ret = mbedtls_cipher_check_tag(ctx, tag, tag_len); + ret = mbedtls_cipher_check_tag((mbedtls_cipher_context_t*)ctx, tag, tag_len); if (!ret) { *is_verified = true; } - mbedtls_cipher_free(ctx); + mbedtls_cipher_free((mbedtls_cipher_context_t*)ctx); status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -343,10 +345,10 @@ static ATCA_STATUS _atca_mbedtls_md_finish(mbedtls_md_context_t* ctx, uint8_t* d * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha1_init( - atcac_sha1_ctx* ctx /**< [in] pointer to a hash context */ + struct atcac_sha1_ctx* ctx /**< [in] pointer to a hash context */ ) { - return _atca_mbedtls_md_init(ctx, mbedtls_md_info_from_type(MBEDTLS_MD_SHA1)); + return _atca_mbedtls_md_init((mbedtls_md_context_t*)ctx, mbedtls_md_info_from_type(MBEDTLS_MD_SHA1)); } /** \brief Add data to a SHA1 hash. @@ -354,12 +356,12 @@ int atcac_sw_sha1_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha1_update( - atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ - const uint8_t* data, /**< [in] input data buffer */ - size_t data_size /**< [in] input data length */ + struct atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ + const uint8_t* data, /**< [in] input data buffer */ + size_t data_size /**< [in] input data length */ ) { - return _atca_mbedtls_md_update(ctx, data, data_size); + return _atca_mbedtls_md_update((mbedtls_md_context_t*)ctx, data, data_size); } /** \brief Complete the SHA1 hash in software and return the digest. @@ -367,11 +369,11 @@ int atcac_sw_sha1_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha1_finish( - atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ - uint8_t digest[ATCA_SHA1_DIGEST_SIZE] /**< [out] output buffer (20 bytes) */ + struct atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ + uint8_t digest[ATCA_SHA1_DIGEST_SIZE] /**< [out] output buffer (20 bytes) */ ) { - return _atca_mbedtls_md_finish(ctx, digest, NULL); + return _atca_mbedtls_md_finish((mbedtls_md_context_t*)ctx, digest, NULL); } /** \brief Initialize context for performing SHA256 hash in software. @@ -379,10 +381,10 @@ int atcac_sw_sha1_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha2_256_init( - atcac_sha2_256_ctx* ctx /**< [in] pointer to a hash context */ + struct atcac_sha2_256_ctx* ctx /**< [in] pointer to a hash context */ ) { - return _atca_mbedtls_md_init(ctx, mbedtls_md_info_from_type(MBEDTLS_MD_SHA256)); + return _atca_mbedtls_md_init((mbedtls_md_context_t*)ctx, mbedtls_md_info_from_type(MBEDTLS_MD_SHA256)); } /** \brief Add data to a SHA256 hash. @@ -390,12 +392,12 @@ int atcac_sw_sha2_256_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha2_256_update( - atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ - const uint8_t* data, /**< [in] input data buffer */ - size_t data_size /**< [in] input data length */ + struct atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ + const uint8_t* data, /**< [in] input data buffer */ + size_t data_size /**< [in] input data length */ ) { - return _atca_mbedtls_md_update(ctx, data, data_size); + return _atca_mbedtls_md_update((mbedtls_md_context_t*)ctx, data, data_size); } /** \brief Complete the SHA256 hash in software and return the digest. @@ -403,11 +405,11 @@ int atcac_sw_sha2_256_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha2_256_finish( - atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ - uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE] /**< [out] output buffer (32 bytes) */ + struct atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ + uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE] /**< [out] output buffer (32 bytes) */ ) { - return _atca_mbedtls_md_finish(ctx, digest, NULL); + return _atca_mbedtls_md_finish((mbedtls_md_context_t*)ctx, digest, NULL); } /** \brief Initialize context for performing CMAC in software. @@ -415,9 +417,9 @@ int atcac_sw_sha2_256_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_init( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - const uint8_t* key, /**< [in] key value to use */ - const uint8_t key_len /**< [in] length of the key */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + const uint8_t* key, /**< [in] key value to use */ + const uint8_t key_len /**< [in] length of the key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -425,13 +427,13 @@ ATCA_STATUS atcac_aes_cmac_init( if (ctx) { int ret = 0; - mbedtls_cipher_init(ctx); + mbedtls_cipher_init((mbedtls_cipher_context_t*)ctx); - ret = mbedtls_cipher_setup(ctx, mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_ECB)); + ret = mbedtls_cipher_setup((mbedtls_cipher_context_t*)ctx, mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_ECB)); if (!ret) { - ret = mbedtls_cipher_cmac_starts(ctx, key, (size_t)key_len * 8); + ret = mbedtls_cipher_cmac_starts((mbedtls_cipher_context_t*)ctx, key, (size_t)key_len * 8); } status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; @@ -445,16 +447,16 @@ ATCA_STATUS atcac_aes_cmac_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_update( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - const uint8_t* data, /**< [in] input data */ - const size_t data_size /**< [in] length of input data */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + const uint8_t* data, /**< [in] input data */ + const size_t data_size /**< [in] length of input data */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - status = (!mbedtls_cipher_cmac_update(ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + status = (!mbedtls_cipher_cmac_update((mbedtls_cipher_context_t*)ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } return status; } @@ -464,9 +466,9 @@ ATCA_STATUS atcac_aes_cmac_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_finish( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - uint8_t* cmac, /**< [out] cmac value */ - size_t* cmac_size /**< [inout] length of cmac */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + uint8_t* cmac, /**< [out] cmac value */ + size_t* cmac_size /**< [inout] length of cmac */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -475,9 +477,9 @@ ATCA_STATUS atcac_aes_cmac_finish( if (ctx) { - int ret = mbedtls_cipher_cmac_finish(ctx, cmac); + int ret = mbedtls_cipher_cmac_finish((mbedtls_cipher_context_t*)ctx, cmac); - mbedtls_cipher_free(ctx); + mbedtls_cipher_free((mbedtls_cipher_context_t*)ctx); status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -489,26 +491,26 @@ ATCA_STATUS atcac_aes_cmac_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_init( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ - const uint8_t* key, /**< [in] key value to use */ - const uint8_t key_len /**< [in] length of the key */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + struct atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ + const uint8_t* key, /**< [in] key value to use */ + const uint8_t key_len /**< [in] length of the key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; - (void)sha256_ctx; - - if (ctx) + if ((NULL != ctx) && (NULL != sha256_ctx)) { int ret; - mbedtls_md_init(ctx); + ctx->mctx = (mbedtls_md_context_t*)sha256_ctx; + + mbedtls_md_init(ctx->mctx); - ret = mbedtls_md_setup(ctx, mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), true); + ret = mbedtls_md_setup(ctx->mctx, mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), true); if (!ret) { - ret = mbedtls_md_hmac_starts(ctx, key, key_len); + ret = mbedtls_md_hmac_starts(ctx->mctx, key, key_len); } status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; @@ -521,16 +523,16 @@ ATCA_STATUS atcac_sha256_hmac_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_update( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - const uint8_t* data, /**< [in] input data */ - size_t data_size /**< [in] length of input data */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + const uint8_t* data, /**< [in] input data */ + size_t data_size /**< [in] length of input data */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - status = (!mbedtls_md_hmac_update(ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + status = (!mbedtls_md_hmac_update(ctx->mctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } return status; } @@ -540,9 +542,9 @@ ATCA_STATUS atcac_sha256_hmac_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_finish( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - uint8_t* digest, /**< [out] hmac value */ - size_t* digest_len /**< [inout] length of hmac */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + uint8_t* digest, /**< [out] hmac value */ + size_t* digest_len /**< [inout] length of hmac */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -551,9 +553,9 @@ ATCA_STATUS atcac_sha256_hmac_finish( if (ctx) { - int ret = mbedtls_md_hmac_finish(ctx, digest); + int ret = mbedtls_md_hmac_finish(ctx->mctx, digest); - mbedtls_md_free(ctx); + mbedtls_md_free(ctx->mctx); status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -565,11 +567,11 @@ ATCA_STATUS atcac_sha256_hmac_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_init( - atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ - const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ - size_t buflen, /**< [in] length of the input buffer */ - uint8_t key_type, - bool pubkey /**< [in] buffer is a public key */ + struct atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ + const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ + size_t buflen, /**< [in] length of the input buffer */ + uint8_t key_type, + bool pubkey /**< [in] buffer is a public key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -582,12 +584,12 @@ ATCA_STATUS atcac_pk_init( uint8_t temp = 1; mbedtls_ecp_keypair* ecp = NULL; - mbedtls_pk_init(ctx); - ret = mbedtls_pk_setup(ctx, mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY)); + mbedtls_pk_init((mbedtls_pk_context*)ctx); + ret = mbedtls_pk_setup((mbedtls_pk_context*)ctx, mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY)); if (!ret) { - ecp = mbedtls_pk_ec(*ctx); + ecp = mbedtls_pk_ec(ctx->mctx); ret = mbedtls_ecp_group_load(&ecp->grp, MBEDTLS_ECP_DP_SECP256R1); } @@ -626,10 +628,10 @@ ATCA_STATUS atcac_pk_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_init_pem( - atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ - const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ - size_t buflen, /**< [in] length of the input buffer */ - bool pubkey /**< [in] buffer is a public key */ + struct atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ + const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ + size_t buflen, /**< [in] length of the input buffer */ + bool pubkey /**< [in] buffer is a public key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -637,15 +639,15 @@ ATCA_STATUS atcac_pk_init_pem( if (ctx) { int ret; - mbedtls_pk_init(ctx); + mbedtls_pk_init((mbedtls_pk_context*)ctx); if (pubkey) { - ret = mbedtls_pk_parse_public_key(ctx, buf, buflen); + ret = mbedtls_pk_parse_public_key((mbedtls_pk_context*)ctx, buf, buflen); } else { - ret = mbedtls_pk_parse_key(ctx, buf, buflen, NULL, 0); + ret = mbedtls_pk_parse_key((mbedtls_pk_context*)ctx, buf, buflen, NULL, 0); } status = (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -657,14 +659,14 @@ ATCA_STATUS atcac_pk_init_pem( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_free( - atcac_pk_ctx* ctx /**< [in] pointer to a pk context */ + struct atcac_pk_ctx* ctx /**< [in] pointer to a pk context */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - mbedtls_pk_init(ctx); + mbedtls_pk_init((mbedtls_pk_context*)ctx); status = ATCA_SUCCESS; } return status; @@ -675,9 +677,9 @@ ATCA_STATUS atcac_pk_free( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_public( - atcac_pk_ctx* ctx, - uint8_t* buf, - size_t* buflen + struct atcac_pk_ctx* ctx, + uint8_t* buf, + size_t* buflen ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -685,14 +687,14 @@ ATCA_STATUS atcac_pk_public( if (ctx) { int ret = -1; - switch (mbedtls_pk_get_type(ctx)) + switch (mbedtls_pk_get_type((mbedtls_pk_context*)ctx)) { case MBEDTLS_PK_ECKEY: /* fallthrough */ case MBEDTLS_PK_ECDSA: { - (void)mbedtls_mpi_write_binary(&mbedtls_pk_ec(*ctx)->Q.X, buf, 32); - ret = mbedtls_mpi_write_binary(&mbedtls_pk_ec(*ctx)->Q.Y, &buf[32], 32); + (void)mbedtls_mpi_write_binary(&mbedtls_pk_ec(ctx->mctx)->Q.X, buf, 32); + ret = mbedtls_mpi_write_binary(&mbedtls_pk_ec(ctx->mctx)->Q.Y, &buf[32], 32); *buflen = 64; break; } @@ -709,11 +711,11 @@ ATCA_STATUS atcac_pk_public( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_sign( - atcac_pk_ctx* ctx, - const uint8_t* digest, - size_t dig_len, - uint8_t* signature, - size_t* sig_len + struct atcac_pk_ctx* ctx, + const uint8_t* digest, + size_t dig_len, + uint8_t* signature, + size_t* sig_len ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -721,7 +723,7 @@ ATCA_STATUS atcac_pk_sign( if (ctx) { int ret = -1; - switch (mbedtls_pk_get_type(ctx)) + switch (mbedtls_pk_get_type((mbedtls_pk_context*)ctx)) { case MBEDTLS_PK_ECKEY: /* fallthrough */ @@ -734,7 +736,8 @@ ATCA_STATUS atcac_pk_sign( mbedtls_mpi_init(&s); //ret = mbedtls_ecdsa_sign(&mbedtls_pk_ec(*ctx)->grp, &r, &s, &mbedtls_pk_ec(*ctx)->d, digest, dig_len, NULL, NULL); - ret = mbedtls_ecdsa_sign_det(&mbedtls_pk_ec(*ctx)->grp, &r, &s, &mbedtls_pk_ec(*ctx)->d, digest, dig_len, MBEDTLS_MD_SHA256); + ret = mbedtls_ecdsa_sign_det(&mbedtls_pk_ec(ctx->mctx)->grp, &r, &s, + &mbedtls_pk_ec(ctx->mctx)->d, digest, dig_len, MBEDTLS_MD_SHA256); if (!ret) { @@ -753,7 +756,7 @@ ATCA_STATUS atcac_pk_sign( break; } case MBEDTLS_PK_RSA: - ret = mbedtls_pk_sign(ctx, MBEDTLS_MD_SHA256, digest, dig_len, signature, sig_len, NULL, NULL); + ret = mbedtls_pk_sign((mbedtls_pk_context*)ctx, MBEDTLS_MD_SHA256, digest, dig_len, signature, sig_len, NULL, NULL); break; default: break; @@ -768,11 +771,11 @@ ATCA_STATUS atcac_pk_sign( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_verify( - atcac_pk_ctx* ctx, - const uint8_t* digest, - size_t dig_len, - const uint8_t* signature, - size_t sig_len + struct atcac_pk_ctx* ctx, + const uint8_t* digest, + size_t dig_len, + const uint8_t* signature, + size_t sig_len ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -780,7 +783,7 @@ ATCA_STATUS atcac_pk_verify( if (ctx) { int ret = -1; - switch (mbedtls_pk_get_type(ctx)) + switch (mbedtls_pk_get_type((mbedtls_pk_context*)ctx)) { case MBEDTLS_PK_ECKEY: /* fallthrough */ @@ -795,14 +798,14 @@ ATCA_STATUS atcac_pk_verify( mbedtls_mpi_read_binary(&r, signature, sig_len / 2); mbedtls_mpi_read_binary(&s, &signature[sig_len / 2], sig_len / 2); - ret = mbedtls_ecdsa_verify(&mbedtls_pk_ec(*ctx)->grp, digest, dig_len, &mbedtls_pk_ec(*ctx)->Q, &r, &s); + ret = mbedtls_ecdsa_verify(&mbedtls_pk_ec(ctx->mctx)->grp, digest, dig_len, &mbedtls_pk_ec(ctx->mctx)->Q, &r, &s); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s); break; } case MBEDTLS_PK_RSA: - ret = mbedtls_pk_verify(ctx, MBEDTLS_MD_SHA256, digest, dig_len, signature, sig_len); + ret = mbedtls_pk_verify((mbedtls_pk_context*)ctx, MBEDTLS_MD_SHA256, digest, dig_len, signature, sig_len); break; default: break; @@ -817,19 +820,19 @@ ATCA_STATUS atcac_pk_verify( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_derive( - atcac_pk_ctx* private_ctx, - atcac_pk_ctx* public_ctx, - uint8_t* buf, - size_t* buflen + struct atcac_pk_ctx* private_ctx, + struct atcac_pk_ctx* public_ctx, + uint8_t* buf, + size_t* buflen ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (private_ctx && public_ctx) { - mbedtls_pk_type_t keytype = mbedtls_pk_get_type(private_ctx); + mbedtls_pk_type_t keytype = mbedtls_pk_get_type((mbedtls_pk_context*)private_ctx); - if (mbedtls_pk_get_type(public_ctx) == keytype) + if (mbedtls_pk_get_type((mbedtls_pk_context*)public_ctx) == keytype) { int ret = -1; switch (keytype) @@ -842,7 +845,9 @@ ATCA_STATUS atcac_pk_derive( mbedtls_mpi_init(&result); - ret = mbedtls_ecdh_compute_shared(&mbedtls_pk_ec(*private_ctx)->grp, &result, &mbedtls_pk_ec(*public_ctx)->Q, &mbedtls_pk_ec(*private_ctx)->d, NULL, NULL); + ret = mbedtls_ecdh_compute_shared(&mbedtls_pk_ec(private_ctx->mctx)->grp, &result, + &mbedtls_pk_ec(public_ctx->mctx)->Q, + &mbedtls_pk_ec(private_ctx->mctx)->d, NULL, NULL); mbedtls_mpi_write_binary(&result, buf, *buflen); mbedtls_mpi_free(&result); @@ -1202,3 +1207,67 @@ int atca_mbedtls_cert_add(mbedtls_x509_crt * cert, const atcacert_def_t * cert_d return ret; } #endif + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_sha1_ctx * atcac_sha1_ctx_new(void) +{ + return (struct atcac_sha1_ctx*)hal_malloc(sizeof(atcac_sha1_ctx_t)); +} + +struct atcac_sha2_256_ctx * atcac_sha256_ctx_new(void) +{ + return (struct atcac_sha2_256_ctx*)hal_malloc(sizeof(atcac_sha2_256_ctx_t)); +} + +struct atcac_hmac_ctx * atcac_hmac_ctx_new(void) +{ + return (struct atcac_hmac_ctx*)hal_malloc(sizeof(atcac_hmac_ctx_t)); +} + +struct atcac_aes_gcm_ctx * atcac_aes_gcm_ctx_new(void) +{ + return (struct atcac_aes_gcm_ctx*)hal_malloc(sizeof(atcac_aes_gcm_ctx_t)); +} + +struct atcac_aes_cmac_ctx * atcac_aes_cmac_ctx_new(void) +{ + return (struct atcac_aes_cmac_ctx*)hal_malloc(sizeof(atcac_aes_cmac_ctx_t)); +} + +struct atcac_pk_ctx * atcac_pk_ctx_new(void) +{ + return (struct atcac_pk_ctx*)hal_malloc(sizeof(atcac_pk_ctx_t)); +} + +void atcac_sha1_ctx_free(struct atcac_sha1_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_sha256_ctx_free(struct atcac_sha2_256_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_hmac_ctx_free(struct atcac_hmac_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_aes_gcm_ctx_free(struct atcac_aes_gcm_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_aes_cmac_ctx_free(struct atcac_aes_cmac_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_pk_ctx_free(struct atcac_pk_ctx * ctx) +{ + hal_free(ctx); +} +#endif + +#endif /* ATCA_MBEDTLS */ diff --git a/lib/mbedtls/atca_mbedtls_wrap.h b/lib/mbedtls/atca_mbedtls_wrap.h index 6c0ab051b..9bb84816d 100644 --- a/lib/mbedtls/atca_mbedtls_wrap.h +++ b/lib/mbedtls/atca_mbedtls_wrap.h @@ -25,8 +25,81 @@ * THIS SOFTWARE. */ -#ifndef _ATCA_MBEDTLS_WRAP_H_ -#define _ATCA_MBEDTLS_WRAP_H_ +#ifndef ATCA_MBEDTLS_WRAP_H +#define ATCA_MBEDTLS_WRAP_H + +#ifdef __COVERITY__ +#pragma coverity compliance block(include) \ + (fp "CERT INT30-C" "Ignoring violations from third party libraries") \ + (fp "CERT INT31-C" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 3.1" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 5.1" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 8.2" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 10.4" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 11.9" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 14.4" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 15.6" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 21.1" "Ignoring violations from third party libraries") +#endif + +#if !defined(MBEDTLS_CONFIG_FILE) +#include "mbedtls/config.h" +#else +#include MBEDTLS_CONFIG_FILE +#endif + +#ifndef MBEDTLS_CMAC_C +#define MBEDTLS_CMAC_C +#endif + +#include +#include +#include + +typedef struct atcac_sha1_ctx +{ + mbedtls_md_context_t mctx; +} atcac_sha1_ctx_t; + +typedef struct atcac_sha2_256_ctx +{ + mbedtls_md_context_t mctx; +} atcac_sha2_256_ctx_t; + +typedef struct atcac_hmac_ctx +{ + mbedtls_md_context_t* mctx; +} atcac_hmac_ctx_t; + +typedef struct atcac_aes_gcm_ctx +{ + mbedtls_cipher_context_t mctx; +} atcac_aes_gcm_ctx_t; + +typedef struct atcac_aes_cmac_ctx +{ + mbedtls_cipher_context_t mctx; +} atcac_aes_cmac_ctx_t; + +typedef struct atcac_pk_ctx +{ + mbedtls_pk_context mctx; +} atcac_pk_ctx_t; + +#ifdef __COVERITY__ +#pragma coverity compliance end_block(include) \ + "CERT INT30-C" \ + "CERT INT31-C" \ + "MISRA C-2012 Rule 3.1" \ + "MISRA C-2012 Rule 5.1" \ + "MISRA C-2012 Rule 8.2" \ + "MISRA C-2012 Rule 10.4" \ + "MISRA C-2012 Rule 11.9" \ + "MISRA C-2012 Rule 14.4" \ + "MISRA C-2012 Rule 15.6" \ + "MISRA C-2012 Rule 21.1" +#endif + /** \defgroup atca_mbedtls_ mbedTLS Wrapper methods (atca_mbedtls_) * @@ -85,4 +158,4 @@ int atca_mbedtls_ecdh_ioprot_cb(uint8_t secret[32]); /** @} */ -#endif /* _ATCA_MBEDTLS_WRAP_H_ */ +#endif /* ATCA_MBEDTLS_WRAP_H */ diff --git a/lib/openssl/atca_openssl_interface.c b/lib/openssl/atca_openssl_interface.c index dfaf68481..1b11fcf84 100644 --- a/lib/openssl/atca_openssl_interface.c +++ b/lib/openssl/atca_openssl_interface.c @@ -24,9 +24,7 @@ * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR * THIS SOFTWARE. */ - -#include "atca_config.h" -#include "atca_status.h" +#include "cryptoauthlib.h" #include "crypto/atca_crypto_sw.h" #ifdef ATCA_OPENSSL @@ -39,6 +37,11 @@ #include #include +typedef struct +{ + void* ptr; +} atca_evp_ctx; + /** \brief Return Random Bytes * * \return ATCA_SUCCESS on success, otherwise an error code. @@ -65,9 +68,9 @@ ATCA_STATUS atcac_sw_random(uint8_t* data, size_t data_size) * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_aad_update( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* aad, /**< [in] Additional Authentication Data */ - const size_t aad_len /**< [in] Length of AAD */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* aad, /**< [in] Additional Authentication Data */ + const size_t aad_len /**< [in] Length of AAD */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -85,11 +88,11 @@ ATCA_STATUS atcac_aes_gcm_aad_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_encrypt_start( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* key, /**< [in] AES Key */ - const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ - const uint8_t* iv, /**< [in] Initialization vector input */ - const uint8_t iv_len /**< [in] Length of the initialization vector */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* key, /**< [in] AES Key */ + const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ + const uint8_t* iv, /**< [in] Initialization vector input */ + const uint8_t iv_len /**< [in] Length of the initialization vector */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -104,6 +107,10 @@ ATCA_STATUS atcac_aes_gcm_encrypt_start( { ret = EVP_EncryptInit_ex((EVP_CIPHER_CTX*)ctx->ptr, EVP_aes_128_gcm(), NULL, NULL, NULL); } + else if (32U == key_len) + { + ret = EVP_EncryptInit_ex((EVP_CIPHER_CTX*)ctx->ptr, EVP_aes_256_gcm(), NULL, NULL, NULL); + } else { ret = 0; @@ -132,11 +139,11 @@ ATCA_STATUS atcac_aes_gcm_encrypt_start( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_encrypt_update( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t * plaintext, /**< [in] Input buffer to encrypt */ - const size_t pt_len, /**< [in] Length of the input */ - uint8_t * ciphertext, /**< [out] Output buffer */ - size_t * ct_len /**< [inout] Length of the ciphertext buffer */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t * plaintext, /**< [in] Input buffer to encrypt */ + const size_t pt_len, /**< [in] Length of the input */ + uint8_t * ciphertext, /**< [out] Output buffer */ + size_t * ct_len /**< [inout] Length of the ciphertext buffer */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -169,9 +176,9 @@ ATCA_STATUS atcac_aes_gcm_encrypt_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_encrypt_finish( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - uint8_t* tag, /**< [out] GCM Tag Result */ - size_t tag_len /**< [in] Length of the GCM tag */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + uint8_t* tag, /**< [out] GCM Tag Result */ + size_t tag_len /**< [in] Length of the GCM tag */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -201,11 +208,11 @@ ATCA_STATUS atcac_aes_gcm_encrypt_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_decrypt_start( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* key, /**< [in] AES Key */ - const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ - const uint8_t* iv, /**< [in] Initialization vector input */ - const uint8_t iv_len /**< [in] Length of the initialization vector */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* key, /**< [in] AES Key */ + const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ + const uint8_t* iv, /**< [in] Initialization vector input */ + const uint8_t iv_len /**< [in] Length of the initialization vector */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -220,6 +227,10 @@ ATCA_STATUS atcac_aes_gcm_decrypt_start( { ret = EVP_DecryptInit_ex((EVP_CIPHER_CTX*)ctx->ptr, EVP_aes_128_gcm(), NULL, NULL, NULL); } + else if (32u == key_len) + { + ret = EVP_DecryptInit_ex((EVP_CIPHER_CTX*)ctx->ptr, EVP_aes_256_gcm(), NULL, NULL, NULL); + } else { ret = 0; @@ -248,11 +259,11 @@ ATCA_STATUS atcac_aes_gcm_decrypt_start( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_decrypt_update( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* ciphertext, /**< [in] Ciphertext to decrypt */ - const size_t ct_len, /**< [in] Length of the ciphertext */ - uint8_t* plaintext, /**< [out] Resulting decrypted plaintext */ - size_t* pt_len /**< [inout] Length of the plaintext buffer */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* ciphertext, /**< [in] Ciphertext to decrypt */ + const size_t ct_len, /**< [in] Length of the ciphertext */ + uint8_t* plaintext, /**< [out] Resulting decrypted plaintext */ + size_t* pt_len /**< [inout] Length of the plaintext buffer */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -285,10 +296,10 @@ ATCA_STATUS atcac_aes_gcm_decrypt_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_decrypt_finish( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* tag, /**< [in] GCM Tag to Verify */ - size_t tag_len, /**< [in] Length of the GCM tag */ - bool* is_verified /**< [out] Tag verified as matching */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* tag, /**< [in] GCM Tag to Verify */ + size_t tag_len, /**< [in] Length of the GCM tag */ + bool* is_verified /**< [out] Tag verified as matching */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -388,10 +399,10 @@ static ATCA_STATUS atca_openssl_md_finish(atca_evp_ctx* ctx, uint8_t * digest, u * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sw_sha1_init( - atcac_sha1_ctx* ctx /**< [in] pointer to a hash context */ + struct atcac_sha1_ctx* ctx /**< [in] pointer to a hash context */ ) { - return atca_openssl_md_init(ctx, EVP_sha1()); + return atca_openssl_md_init((atca_evp_ctx*)ctx, EVP_sha1()); } /** \brief Add data to a SHA1 hash. @@ -399,12 +410,12 @@ ATCA_STATUS atcac_sw_sha1_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sw_sha1_update( - atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ - const uint8_t* data, /**< [in] input data buffer */ - size_t data_size /**< [in] input data length */ + struct atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ + const uint8_t* data, /**< [in] input data buffer */ + size_t data_size /**< [in] input data length */ ) { - return atca_openssl_md_update(ctx, data, data_size); + return atca_openssl_md_update((atca_evp_ctx*)ctx, data, data_size); } /** \brief Complete the SHA1 hash in software and return the digest. @@ -412,13 +423,13 @@ ATCA_STATUS atcac_sw_sha1_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sw_sha1_finish( - atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ - uint8_t digest[ATCA_SHA1_DIGEST_SIZE] /**< [out] output buffer (20 bytes) */ + struct atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ + uint8_t digest[ATCA_SHA1_DIGEST_SIZE] /**< [out] output buffer (20 bytes) */ ) { unsigned int outlen = ATCA_SHA1_DIGEST_SIZE; - return atca_openssl_md_finish(ctx, digest, &outlen); + return atca_openssl_md_finish((atca_evp_ctx*)ctx, digest, &outlen); } /** \brief Initialize context for performing SHA256 hash in software. @@ -426,10 +437,10 @@ ATCA_STATUS atcac_sw_sha1_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sw_sha2_256_init( - atcac_sha2_256_ctx* ctx /**< [in] pointer to a hash context */ + struct atcac_sha2_256_ctx* ctx /**< [in] pointer to a hash context */ ) { - return atca_openssl_md_init(ctx, EVP_sha256()); + return atca_openssl_md_init((atca_evp_ctx*)ctx, EVP_sha256()); } /** \brief Add data to a SHA256 hash. @@ -437,12 +448,12 @@ ATCA_STATUS atcac_sw_sha2_256_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sw_sha2_256_update( - atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ - const uint8_t* data, /**< [in] input data buffer */ - size_t data_size /**< [in] input data length */ + struct atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ + const uint8_t* data, /**< [in] input data buffer */ + size_t data_size /**< [in] input data length */ ) { - return atca_openssl_md_update(ctx, data, data_size); + return atca_openssl_md_update((atca_evp_ctx*)ctx, data, data_size); } /** \brief Complete the SHA256 hash in software and return the digest. @@ -450,13 +461,13 @@ ATCA_STATUS atcac_sw_sha2_256_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sw_sha2_256_finish( - atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ - uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE] /**< [out] output buffer (32 bytes) */ + struct atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ + uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE] /**< [out] output buffer (32 bytes) */ ) { unsigned int outlen = ATCA_SHA2_256_DIGEST_SIZE; - return atca_openssl_md_finish(ctx, digest, &outlen); + return atca_openssl_md_finish((atca_evp_ctx*)ctx, digest, &outlen); } /** \brief Initialize context for performing CMAC in software. @@ -464,9 +475,9 @@ ATCA_STATUS atcac_sw_sha2_256_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_init( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - const uint8_t* key, /**< [in] key value to use */ - const uint8_t key_len /**< [in] length of the key */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + const uint8_t* key, /**< [in] key value to use */ + const uint8_t key_len /**< [in] length of the key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -495,9 +506,9 @@ ATCA_STATUS atcac_aes_cmac_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_update( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - const uint8_t* data, /**< [in] input data */ - const size_t data_size /**< [in] length of input data */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + const uint8_t* data, /**< [in] input data */ + const size_t data_size /**< [in] length of input data */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -514,9 +525,9 @@ ATCA_STATUS atcac_aes_cmac_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_finish( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - uint8_t* cmac, /**< [out] cmac value */ - size_t * cmac_size /**< [inout] length of cmac */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + uint8_t* cmac, /**< [out] cmac value */ + size_t * cmac_size /**< [inout] length of cmac */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -537,10 +548,10 @@ ATCA_STATUS atcac_aes_cmac_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_init( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ - const uint8_t* key, /**< [in] key value to use */ - const uint8_t key_len /**< [in] length of the key */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + struct atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ + const uint8_t* key, /**< [in] key value to use */ + const uint8_t key_len /**< [in] length of the key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -561,9 +572,9 @@ ATCA_STATUS atcac_sha256_hmac_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_update( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - const uint8_t* data, /**< [in] input data */ - size_t data_size /**< [in] length of input data */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + const uint8_t* data, /**< [in] input data */ + size_t data_size /**< [in] length of input data */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -580,7 +591,7 @@ ATCA_STATUS atcac_sha256_hmac_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_finish( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ uint8_t* digest, /**< [out] hmac value */ size_t * digest_len /**< [inout] length of hmac */ ) @@ -605,11 +616,11 @@ ATCA_STATUS atcac_sha256_hmac_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_init( - atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ - const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ - size_t buflen, /**< [in] length of the input buffer */ - uint8_t key_type, - bool pubkey /**< [in] buffer is a public key */ + struct atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ + const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ + size_t buflen, /**< [in] length of the input buffer */ + uint8_t key_type, + bool pubkey /**< [in] buffer is a public key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -684,10 +695,10 @@ ATCA_STATUS atcac_pk_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_init_pem( - atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ - const uint8_t * buf, /**< [in] buffer containing a pem encoded key */ - size_t buflen, /**< [in] length of the input buffer */ - bool pubkey /**< [in] buffer is a public key */ + struct atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ + const uint8_t * buf, /**< [in] buffer containing a pem encoded key */ + size_t buflen, /**< [in] length of the input buffer */ + bool pubkey /**< [in] buffer is a public key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -719,7 +730,7 @@ ATCA_STATUS atcac_pk_init_pem( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_free( - atcac_pk_ctx* ctx /**< [in] pointer to a pk context */ + struct atcac_pk_ctx* ctx /**< [in] pointer to a pk context */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -740,9 +751,9 @@ ATCA_STATUS atcac_pk_free( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_public( - atcac_pk_ctx* ctx, - uint8_t* buf, - size_t* buflen + struct atcac_pk_ctx* ctx, + uint8_t* buf, + size_t* buflen ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -778,11 +789,11 @@ ATCA_STATUS atcac_pk_public( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_sign( - atcac_pk_ctx* ctx, - const uint8_t * digest, - size_t dig_len, - uint8_t* signature, - size_t* sig_len + struct atcac_pk_ctx* ctx, + const uint8_t * digest, + size_t dig_len, + uint8_t* signature, + size_t* sig_len ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -847,11 +858,11 @@ ATCA_STATUS atcac_pk_sign( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_verify( - atcac_pk_ctx* ctx, - const uint8_t* digest, - size_t dig_len, - const uint8_t* signature, - size_t sig_len + struct atcac_pk_ctx* ctx, + const uint8_t* digest, + size_t dig_len, + const uint8_t* signature, + size_t sig_len ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -913,10 +924,10 @@ ATCA_STATUS atcac_pk_verify( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_derive( - atcac_pk_ctx* private_ctx, - atcac_pk_ctx* public_ctx, - uint8_t* buf, - size_t* buflen + struct atcac_pk_ctx* private_ctx, + struct atcac_pk_ctx* public_ctx, + uint8_t* buf, + size_t* buflen ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -950,4 +961,66 @@ ATCA_STATUS atcac_pk_derive( return status; } +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_sha1_ctx * atcac_sha1_ctx_new(void) +{ + return (struct atcac_sha1_ctx*)hal_malloc(sizeof(atcac_sha1_ctx_t)); +} + +struct atcac_sha2_256_ctx * atcac_sha256_ctx_new(void) +{ + return (struct atcac_sha2_256_ctx*)hal_malloc(sizeof(atcac_sha2_256_ctx_t)); +} + +struct atcac_hmac_ctx * atcac_hmac_ctx_new(void) +{ + return (struct atcac_hmac_ctx*)hal_malloc(sizeof(atcac_hmac_ctx_t)); +} + +struct atcac_aes_gcm_ctx * atcac_aes_gcm_ctx_new(void) +{ + return (struct atcac_aes_gcm_ctx*)hal_malloc(sizeof(atcac_aes_gcm_ctx_t)); +} + +struct atcac_aes_cmac_ctx * atcac_aes_cmac_ctx_new(void) +{ + return (struct atcac_aes_cmac_ctx*)hal_malloc(sizeof(atcac_aes_cmac_ctx_t)); +} + +struct atcac_pk_ctx * atcac_pk_ctx_new(void) +{ + return (struct atcac_pk_ctx*)hal_malloc(sizeof(atcac_pk_ctx_t)); +} + +void atcac_sha1_ctx_free(struct atcac_sha1_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_sha256_ctx_free(struct atcac_sha2_256_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_hmac_ctx_free(struct atcac_hmac_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_aes_gcm_ctx_free(struct atcac_aes_gcm_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_aes_cmac_ctx_free(struct atcac_aes_cmac_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_pk_ctx_free(struct atcac_pk_ctx * ctx) +{ + hal_free(ctx); +} +#endif + #endif /* ATCA_OPENSSL */ diff --git a/lib/openssl/atca_openssl_interface.h b/lib/openssl/atca_openssl_interface.h new file mode 100644 index 000000000..f4a1020ca --- /dev/null +++ b/lib/openssl/atca_openssl_interface.h @@ -0,0 +1,126 @@ +/** + * \file + * \brief OpenSSL Integration Support + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef ATCA_OPENSSL_INTERFACE_H +#define ATCA_OPENSSL_INTERFACE_H + +#include "atca_config_check.h" + +#ifdef ATCA_OPENSSL + +#ifdef __cplusplus +extern "C" { +#endif + +/** \def ATCAC_SHA1_EN + * Indicates if this module is a provider of a SHA1 implementation + */ +#ifndef ATCAC_SHA1_EN +#define ATCAC_SHA1_EN (DEFAULT_ENABLED) +#endif /* ATCAC_SHA1_EN */ + +/** \def ATCAC_SHA256_EN + * Indicates if this module is a provider of a SHA256 implementation + */ +#ifndef ATCAC_SHA256_EN +#define ATCAC_SHA256_EN (DEFAULT_ENABLED) +#endif /* ATCAC_SHA256_EN */ + +/** \def ATCAC_AES_CMAC_EN + * Indicates if this module is a provider of an AES-CMAC implementation + */ +#ifndef ATCAC_AES_CMAC_EN +#define ATCAC_AES_CMAC_EN (DEFAULT_ENABLED) +#endif /* ATCAC_AES_CMAC_EN */ + +/** \def ATCAC_AES_GCM_EN + * Indicates if this module is a provider of an AES-GCM implementation + */ +#ifndef ATCAC_AES_GCM_EN +#define ATCAC_AES_GCM_EN (DEFAULT_ENABLED) +#endif /* ATCAC_AES_GCM_EN */ + +/** \def ATCAC_AES_GCM_UPDATE_EN + * Indicates if this module is a provider of an AES-GCM Update implementation + */ +#ifndef ATCAC_AES_GCM_UPDATE_EN +#define ATCAC_AES_GCM_UPDATE_EN (ATCAC_AES_GCM_EN) +#endif + +/** \def ATCAC_PKEY_EN + * Indicates if this module is a provider of a generic asymmetric cryptography + * implementation */ +#ifndef ATCAC_PKEY_EN +#define ATCAC_PKEY_EN (DEFAULT_ENABLED) +#endif + +/** \def HOSTLIB_CERT_EN + * Indicates if this module is a provider of x509 certificate handling + */ +#ifndef HOSTLIB_CERT_EN +#define HOSTLIB_CERT_EN (DEFAULT_DISABLED) +#endif + +#if ATCAC_AES_GCM_EN || ATCAC_AES_GCM_UPDATE_EN +typedef struct atcac_aes_gcm_ctx +{ + void* ptr; +} atcac_aes_gcm_ctx_t; +#endif + +typedef struct atcac_sha1_ctx +{ + void* ptr; +} atcac_sha1_ctx_t; + +typedef struct atcac_sha2_256_ctx +{ + void* ptr; +} atcac_sha2_256_ctx_t; + +typedef struct atcac_aes_cmac_ctx +{ + void* ptr; +} atcac_aes_cmac_ctx_t; + +typedef struct atcac_hmac_ctx +{ + void* ptr; +} atcac_hmac_ctx_t; + +typedef struct atcac_pk_ctx +{ + void* ptr; +} atcac_pk_ctx_t; + +#ifdef __cplusplus +} +#endif + +#endif /* ATCA_OPENSSL */ + +#endif /* ATCA_OPENSSL_INTERFACE_H */ diff --git a/lib/pkcs11/pkcs11_cert.c b/lib/pkcs11/pkcs11_cert.c index f7e5cca0d..53e907950 100644 --- a/lib/pkcs11/pkcs11_cert.c +++ b/lib/pkcs11/pkcs11_cert.c @@ -143,17 +143,17 @@ static CK_RV pkcs11_cert_load_ca(pkcs11_object_ptr pObject, CK_ATTRIBUTE_PTR pAt #if ATCA_TA_SUPPORT static CK_RV pkcs11_cert_load_ta(pkcs11_object_ptr pObject, CK_ATTRIBUTE_PTR pAttribute, ATCADevice device) { - uint8_t handle_info[TA_HANDLE_INFO_SIZE]; - ATCA_STATUS status = talib_info_get_handle_info(device, pObject->slot, handle_info); + ta_handle_info handle_info; + ATCA_STATUS status = talib_info_get_handle_info(device, pObject->slot, &handle_info); if (ATCA_SUCCESS == status) { - /* coverity[misra_c_2012_rule_11_3_violation] Appropriate usage of the handle_info buffer */ - uint16_t cert_size = ((ta_element_attributes_t*)handle_info)->property; + uint16_t cert_size = handle_info.attributes.property; if ((NULL != pAttribute->pValue) && (pAttribute->ulValueLen >= cert_size)) { - status = talib_read_element(device, pObject->slot, &cert_size, (uint8_t*)pAttribute->pValue); + cal_buffer sAttribute = CAL_BUF_INIT(cert_size, pAttribute->pValue); + status = talib_read_element(device, pObject->slot, &sAttribute); pAttribute->ulValueLen = cert_size; } else @@ -438,62 +438,62 @@ static CK_RV pkcs11_cert_get_id(CK_VOID_PTR pObject, CK_ATTRIBUTE_PTR pAttribute */ const pkcs11_attrib_model pkcs11_cert_x509public_attributes[] = { /** Object Class - CK_OBJECT_CLASS */ - { CKA_CLASS, pkcs11_object_get_class }, + { CKA_CLASS, pkcs11_object_get_class }, /** CK_TRUE if object is a token object; CK_FALSE if object is a session object. Default is CK_FALSE. */ - { CKA_TOKEN, pkcs11_attrib_true }, + { CKA_TOKEN, pkcs11_attrib_true }, /** CK_TRUE if object is a private object; CK_FALSE if object is a public object. */ - { CKA_PRIVATE, pkcs11_token_get_access_type }, + { CKA_PRIVATE, pkcs11_token_get_access_type }, /** CK_TRUE if object can be modified. Default is CK_TRUE. */ - { CKA_MODIFIABLE, pkcs11_token_get_writable }, + { CKA_MODIFIABLE, pkcs11_token_get_writable }, /** Description of the object(default empty). */ - { CKA_LABEL, pkcs11_object_get_name }, + { CKA_LABEL, pkcs11_object_get_name }, /** CK_TRUE if object can be copied using C_CopyObject.Defaults to CK_TRUE. */ - { CKA_COPYABLE, pkcs11_attrib_false }, + { CKA_COPYABLE, pkcs11_attrib_false }, /** CK_TRUE if the object can be destroyed using C_DestroyObject. Default is CK_TRUE. */ - { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, + { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, /** Type of certificate */ - { CKA_CERTIFICATE_TYPE, pkcs11_cert_get_type }, + { CKA_CERTIFICATE_TYPE, pkcs11_cert_get_type }, /** The certificate can be trusted for the application that it was created. */ - { CKA_TRUSTED, pkcs11_cert_get_trusted_flag }, + { CKA_TRUSTED, pkcs11_cert_get_trusted_flag }, /** Default CK_CERTIFICATE_CATEGORY_UNSPECIFIED) */ - { CKA_CERTIFICATE_CATEGORY, pkcs11_object_get_type }, + { CKA_CERTIFICATE_CATEGORY, pkcs11_object_get_type }, /** Checksum */ - { CKA_CHECK_VALUE, NULL_PTR }, + { CKA_CHECK_VALUE, NULL_PTR }, /** Start date for the certificate (default empty) */ - { CKA_START_DATE, pkcs11_attrib_empty }, + { CKA_START_DATE, pkcs11_attrib_empty }, /** End date for the certificate (default empty) */ - { CKA_END_DATE, pkcs11_attrib_empty }, + { CKA_END_DATE, pkcs11_attrib_empty }, /** ALL: DER-encoding of the SubjectPublicKeyInfo for the public key contained in this certificate (default empty) SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT_STRING } */ - { CKA_PUBLIC_KEY_INFO, pkcs11_attrib_empty }, + { CKA_PUBLIC_KEY_INFO, pkcs11_attrib_empty }, /** DER-encoded Certificate subject name */ - { CKA_SUBJECT, pkcs11_cert_get_subject }, + { CKA_SUBJECT, pkcs11_cert_get_subject }, /** Key identifier for public/private key pair (default empty) */ - { CKA_ID, pkcs11_cert_get_id }, + { CKA_ID, pkcs11_cert_get_id }, /** DER-encoded Certificate issuer name (default empty)*/ - { CKA_ISSUER, pkcs11_attrib_empty }, + { CKA_ISSUER, pkcs11_attrib_empty }, /** DER-encoding of the certificate serial number (default empty) */ - { CKA_SERIAL_NUMBER, pkcs11_attrib_empty }, + { CKA_SERIAL_NUMBER, pkcs11_attrib_empty }, /** BER-encoded Complete Certificate */ - { CKA_VALUE, pkcs11_cert_get_encoded }, + { CKA_VALUE, pkcs11_cert_get_encoded }, /** If not empty this attribute gives the URL where the complete certificate can be obtained (default empty) */ - { CKA_URL, pkcs11_attrib_empty }, + { CKA_URL, pkcs11_attrib_empty }, /** Hash of the subject public key (default empty). Hash algorithm is defined by CKA_NAME_HASH_ALGORITHM */ - { CKA_HASH_OF_SUBJECT_PUBLIC_KEY, pkcs11_cert_get_subject_key_id }, + { CKA_HASH_OF_SUBJECT_PUBLIC_KEY, pkcs11_cert_get_subject_key_id }, /** Hash of the issuer public key (default empty). Hash algorithm is defined by CKA_NAME_HASH_ALGORITHM */ - { CKA_HASH_OF_ISSUER_PUBLIC_KEY, pkcs11_cert_get_authority_key_id }, + { CKA_HASH_OF_ISSUER_PUBLIC_KEY, pkcs11_cert_get_authority_key_id }, /** Java MIDP security domain. (default CK_SECURITY_DOMAIN_UNSPECIFIED) */ - { CKA_JAVA_MIDP_SECURITY_DOMAIN, NULL_PTR }, + { CKA_JAVA_MIDP_SECURITY_DOMAIN, NULL_PTR }, /** Defines the mechanism used to calculate CKA_HASH_OF_SUBJECT_PUBLIC_KEY and CKA_HASH_OF_ISSUER_PUBLIC_KEY. If the attribute is not present then the type defaults to SHA-1. */ - { CKA_NAME_HASH_ALGORITHM, pkcs11_attrib_empty }, + { CKA_NAME_HASH_ALGORITHM, pkcs11_attrib_empty }, }; /* coverity[misra_c_2012_rule_5_1_violation:FALSE] C99 limit is 63 characters */ @@ -504,56 +504,56 @@ const CK_ULONG pkcs11_cert_x509public_attributes_count = (CK_ULONG)(PKCS11_UTIL_ */ const pkcs11_attrib_model pkcs11_cert_wtlspublic_attributes[] = { /** Object Class - CK_OBJECT_CLASS */ - { CKA_CLASS, pkcs11_object_get_class }, + { CKA_CLASS, pkcs11_object_get_class }, /** CK_TRUE if object is a token object; CK_FALSE if object is a session object. Default is CK_FALSE. */ - { CKA_TOKEN, pkcs11_attrib_true }, + { CKA_TOKEN, pkcs11_attrib_true }, /** CK_TRUE if object is a private object; CK_FALSE if object is a public object. */ - { CKA_PRIVATE, pkcs11_token_get_access_type }, + { CKA_PRIVATE, pkcs11_token_get_access_type }, /** CK_TRUE if object can be modified. Default is CK_TRUE. */ - { CKA_MODIFIABLE, NULL_PTR }, + { CKA_MODIFIABLE, NULL_PTR }, /** Description of the object(default empty). */ - { CKA_LABEL, pkcs11_object_get_name }, + { CKA_LABEL, pkcs11_object_get_name }, /** CK_TRUE if object can be copied using C_CopyObject.Defaults to CK_TRUE. */ - { CKA_COPYABLE, pkcs11_attrib_false }, + { CKA_COPYABLE, pkcs11_attrib_false }, /** CK_TRUE if the object can be destroyed using C_DestroyObject. Default is CK_TRUE. */ - { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, + { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, /** Type of certificate */ - { CKA_CERTIFICATE_TYPE, pkcs11_cert_get_type }, + { CKA_CERTIFICATE_TYPE, pkcs11_cert_get_type }, /** The certificate can be trusted for the application that it was created. */ - { CKA_TRUSTED, NULL_PTR }, + { CKA_TRUSTED, NULL_PTR }, /** Default CK_CERTIFICATE_CATEGORY_UNSPECIFIED) */ - { CKA_CERTIFICATE_CATEGORY, pkcs11_object_get_type }, + { CKA_CERTIFICATE_CATEGORY, pkcs11_object_get_type }, /** Checksum */ - { CKA_CHECK_VALUE, NULL_PTR }, + { CKA_CHECK_VALUE, NULL_PTR }, /** Start date for the certificate (default empty) */ - { CKA_START_DATE, pkcs11_attrib_empty }, + { CKA_START_DATE, pkcs11_attrib_empty }, /** End date for the certificate (default empty) */ - { CKA_END_DATE, pkcs11_attrib_empty }, + { CKA_END_DATE, pkcs11_attrib_empty }, /** ALL: DER-encoding of the SubjectPublicKeyInfo for the public key contained in this certificate (default empty) SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT_STRING } */ - { CKA_PUBLIC_KEY_INFO, pkcs11_attrib_empty }, + { CKA_PUBLIC_KEY_INFO, pkcs11_attrib_empty }, /** WTLS-encoded Certificate subject name */ - { CKA_SUBJECT, pkcs11_attrib_empty }, + { CKA_SUBJECT, pkcs11_attrib_empty }, /** WTLS-encoded Certificate issuer name (default empty)*/ - { CKA_ISSUER, pkcs11_attrib_empty }, + { CKA_ISSUER, pkcs11_attrib_empty }, /** WTLS-encoded Complete Certificate */ - { CKA_VALUE, pkcs11_cert_get_encoded }, + { CKA_VALUE, pkcs11_cert_get_encoded }, /** If not empty this attribute gives the URL where the complete certificate can be obtained (default empty) */ - { CKA_URL, pkcs11_attrib_empty }, + { CKA_URL, pkcs11_attrib_empty }, /** Hash of the subject public key (default empty). Hash algorithm is defined by CKA_NAME_HASH_ALGORITHM */ - { CKA_HASH_OF_SUBJECT_PUBLIC_KEY, pkcs11_cert_get_subject_key_id }, + { CKA_HASH_OF_SUBJECT_PUBLIC_KEY, pkcs11_cert_get_subject_key_id }, /** Hash of the issuer public key (default empty). Hash algorithm is defined by CKA_NAME_HASH_ALGORITHM */ - { CKA_HASH_OF_ISSUER_PUBLIC_KEY, pkcs11_attrib_empty }, + { CKA_HASH_OF_ISSUER_PUBLIC_KEY, pkcs11_attrib_empty }, /** Defines the mechanism used to calculate CKA_HASH_OF_SUBJECT_PUBLIC_KEY and CKA_HASH_OF_ISSUER_PUBLIC_KEY. If the attribute is not present then the type defaults to SHA-1. */ - { CKA_NAME_HASH_ALGORITHM, pkcs11_attrib_empty }, + { CKA_NAME_HASH_ALGORITHM, pkcs11_attrib_empty }, }; /* coverity[misra_c_2012_rule_5_1_violation:FALSE] C99 limit is 63 characters */ @@ -564,56 +564,56 @@ const CK_ULONG pkcs11_cert_wtlspublic_attributes_count = (CK_ULONG)(PKCS11_UTIL_ */ const pkcs11_attrib_model pkcs11_cert_x509_attributes[] = { /** Object Class - CK_OBJECT_CLASS */ - { CKA_CLASS, pkcs11_object_get_class }, + { CKA_CLASS, pkcs11_object_get_class }, /** CK_TRUE if object is a token object; CK_FALSE if object is a session object. Default is CK_FALSE. */ - { CKA_TOKEN, pkcs11_attrib_true }, + { CKA_TOKEN, pkcs11_attrib_true }, /** CK_TRUE if object is a private object; CK_FALSE if object is a public object. */ - { CKA_PRIVATE, pkcs11_token_get_access_type }, + { CKA_PRIVATE, pkcs11_token_get_access_type }, /** CK_TRUE if object can be modified. Default is CK_TRUE. */ - { CKA_MODIFIABLE, NULL_PTR }, + { CKA_MODIFIABLE, NULL_PTR }, /** Description of the object(default empty). */ - { CKA_LABEL, pkcs11_object_get_name }, + { CKA_LABEL, pkcs11_object_get_name }, /** CK_TRUE if object can be copied using C_CopyObject.Defaults to CK_TRUE. */ - { CKA_COPYABLE, pkcs11_attrib_false }, + { CKA_COPYABLE, pkcs11_attrib_false }, /** CK_TRUE if the object can be destroyed using C_DestroyObject. Default is CK_TRUE. */ - { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, + { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, /** Type of certificate */ - { CKA_CERTIFICATE_TYPE, pkcs11_cert_get_type }, + { CKA_CERTIFICATE_TYPE, pkcs11_cert_get_type }, /** The certificate can be trusted for the application that it was created. */ - { CKA_TRUSTED, NULL_PTR }, + { CKA_TRUSTED, NULL_PTR }, /** Default CK_CERTIFICATE_CATEGORY_UNSPECIFIED) */ - { CKA_CERTIFICATE_CATEGORY, pkcs11_object_get_type }, + { CKA_CERTIFICATE_CATEGORY, pkcs11_object_get_type }, /** Checksum */ - { CKA_CHECK_VALUE, NULL_PTR }, + { CKA_CHECK_VALUE, NULL_PTR }, /** Start date for the certificate (default empty) */ - { CKA_START_DATE, pkcs11_attrib_empty }, + { CKA_START_DATE, pkcs11_attrib_empty }, /** End date for the certificate (default empty) */ - { CKA_END_DATE, pkcs11_attrib_empty }, + { CKA_END_DATE, pkcs11_attrib_empty }, /** ALL: DER-encoding of the SubjectPublicKeyInfo for the public key contained in this certificate (default empty) SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT_STRING } */ - { CKA_PUBLIC_KEY_INFO, pkcs11_attrib_empty }, + { CKA_PUBLIC_KEY_INFO, pkcs11_attrib_empty }, /** X509: DER-encoding of the attribute certificate's subject field. This is distinct from the CKA_SUBJECT attribute contained in CKC_X_509 certificates because the ASN.1 syntax and encoding are different. */ - { CKA_OWNER, pkcs11_attrib_empty }, + { CKA_OWNER, pkcs11_attrib_empty }, /** X509: DER-encoding of the attribute certificate's issuer field. This is distinct from the CKA_ISSUER attribute contained in CKC_X_509 certificates because the ASN.1 syntax and encoding are different. (default empty) */ - { CKA_AC_ISSUER, pkcs11_attrib_empty }, + { CKA_AC_ISSUER, pkcs11_attrib_empty }, /** DER-encoding of the certificate serial number (default empty) */ - { CKA_SERIAL_NUMBER, pkcs11_attrib_empty }, + { CKA_SERIAL_NUMBER, pkcs11_attrib_empty }, /** X509: BER-encoding of a sequence of object identifier values corresponding to the attribute types contained in the certificate. When present, this field offers an opportunity for applications to search for a particular attribute certificate without fetching and parsing the certificate itself. (default empty) */ - { CKA_ATTR_TYPES, pkcs11_attrib_empty }, + { CKA_ATTR_TYPES, pkcs11_attrib_empty }, /** BER-encoded Complete Certificate */ - { CKA_VALUE, pkcs11_cert_get_encoded }, + { CKA_VALUE, pkcs11_cert_get_encoded }, }; const CK_ULONG pkcs11_cert_x509_attributes_count = (CK_ULONG)(PKCS11_UTIL_ARRAY_SIZE(pkcs11_cert_x509_attributes)); @@ -640,20 +640,20 @@ CK_RV pkcs11_cert_x509_write(CK_VOID_PTR pObject, CK_ATTRIBUTE_PTR pAttribute, p { #if ATCA_TA_SUPPORT ATCADevice device = pSession->slot->device_ctx; - uint8_t handle_info[TA_HANDLE_INFO_SIZE]; - status = talib_info_get_handle_info(device, obj_ptr->slot, handle_info); + ta_handle_info handle_info; + status = talib_info_get_handle_info(device, obj_ptr->slot, &handle_info); if ((ATCA_STATUS)TA_HANDLE_EXIST_ERROR == status) { /* Create a new handle */ - /* coverity[misra_c_2012_rule_11_3_violation] Appropriate usage of the handle_info buffer */ - (void)talib_handle_init_data((ta_element_attributes_t*)handle_info, (uint16_t)(pAttribute->ulValueLen & UINT16_MAX)); - status = talib_create_element_with_handle(device, obj_ptr->slot, (ta_element_attributes_t*)handle_info); + (void)talib_handle_init_data(&handle_info.attributes, (uint16_t)(pAttribute->ulValueLen & UINT16_MAX)); + status = talib_create_element_with_handle(device, obj_ptr->slot, &handle_info.attributes); } if (ATCA_SUCCESS == status) { - status = talib_write_element(device, obj_ptr->slot, (uint16_t)pAttribute->ulValueLen, (uint8_t*)pAttribute->pValue); + cal_buffer sAttribute = CAL_BUF_INIT(pAttribute->ulValueLen, pAttribute->pValue); + status = talib_write_element(device, obj_ptr->slot, &sAttribute); } #else status = ATCA_NO_DEVICES; diff --git a/lib/pkcs11/pkcs11_config.c b/lib/pkcs11/pkcs11_config.c index bd996b0fa..c2090e30e 100644 --- a/lib/pkcs11/pkcs11_config.c +++ b/lib/pkcs11/pkcs11_config.c @@ -987,7 +987,7 @@ CK_RV pkcs11_config_key(pkcs11_lib_ctx_ptr pLibCtx, pkcs11_slot_ctx_ptr pSlot, p { /* coverity[cert_fio32_c_violation] files are created in pLibCtx->config_path which has already been validated as a proper device*/ /* coverity[misra_c_2012_rule_10_1_violation] Macro usage is valid per POSIX specification*/ - int fd = open(filename, O_CREAT | O_EXCL | O_WRONLY); + int fd = open(filename, O_CREAT | O_EXCL | O_WRONLY, 0755); if (-1 != fd) { fp = fdopen(fd, "wb"); diff --git a/lib/pkcs11/pkcs11_encrypt.c b/lib/pkcs11/pkcs11_encrypt.c index 6198e81e4..e16b5bccc 100644 --- a/lib/pkcs11/pkcs11_encrypt.c +++ b/lib/pkcs11/pkcs11_encrypt.c @@ -123,7 +123,7 @@ CK_RV pkcs11_encrypt_init(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanis rv = CKR_MECHANISM_INVALID; #endif } -#ifdef ATCA_TA100_SUPPORT +#if ATCA_TA_SUPPORT if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) { if (pParams->ulIvLen > sizeof(pSession->active_mech_data.gcm_single.iv)) @@ -280,16 +280,20 @@ CK_RV pkcs11_encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulD rv = CKR_GENERAL_ERROR; #endif } -#ifdef ATCA_TA100_SUPPORT - if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) +#if ATCA_TA_SUPPORT + if (atcab_is_ta_device(atcab_get_device_type())) { if (CKR_OK == (rv = pkcs11_lock_device(pLibCtx))) { - if (ATCA_SUCCESS == (status = talib_aes_gcm_keyload(pSession->slot->device_ctx, pKey->slot, 0))) + if (ATCA_SUCCESS == (status = talib_aes128_gcm_keyload(pSession->slot->device_ctx, pKey->slot, 0))) { - if (ATCA_SUCCESS == (status = talib_aes_gcm_encrypt(pSession->slot->device_ctx, pSession->active_mech_data.gcm_single.aad, - pSession->active_mech_data.gcm_single.aad_len, pSession->active_mech_data.gcm_single.iv, - pData, (uint16_t)ulDataLen, pEncryptedData, &pEncryptedData[ulDataLen]))) + cal_buffer aad_buf = CAL_BUF_INIT(pSession->active_mech_data.gcm_single.aad_len, pSession->active_mech_data.gcm_single.aad); + cal_buffer iv_buf = CAL_BUF_INIT(TA_AES_GCM_IV_LENGTH, pSession->active_mech_data.gcm_single.iv); + cal_buffer data_buf = CAL_BUF_INIT(ulDataLen, pData); + cal_buffer ciphertext_buf = CAL_BUF_INIT(*pulEncryptedDataLen, pEncryptedData); + cal_buffer tag_buf = CAL_BUF_INIT(TA_AES_GCM_TAG_LENGTH, &pEncryptedData[ulDataLen]); + if (ATCA_SUCCESS == (status = talib_aes_gcm_encrypt(pSession->slot->device_ctx, &aad_buf, &iv_buf, + &data_buf, &ciphertext_buf, &tag_buf))) { *pulEncryptedDataLen = ulDataLen + TA_AES_GCM_TAG_LENGTH; } @@ -404,8 +408,8 @@ CK_RV pkcs11_encrypt_update( } #endif } -#ifdef ATCA_TA100_SUPPORT - if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) +#if ATCA_TA_SUPPORT + if (atcab_is_ta_device(atcab_get_device_type())) { rv = CKR_FUNCTION_NOT_SUPPORTED; } @@ -494,8 +498,8 @@ CK_RV pkcs11_encrypt_final(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedDat *pulEncryptedDataLen = pSession->active_mech_data.gcm.tag_len; #endif } -#ifdef ATCA_TA100_SUPPORT - if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) +#if ATCA_TA_SUPPORT + if (atcab_is_ta_device(atcab_get_device_type())) { rv = CKR_FUNCTION_NOT_SUPPORTED; } @@ -598,8 +602,8 @@ CK_RV pkcs11_decrypt_init(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanis rv = CKR_MECHANISM_INVALID; #endif } -#ifdef ATCA_TA100_SUPPORT - if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) +#if ATCA_TA_SUPPORT + if (atcab_is_ta_device(atcab_get_device_type())) { if (pParams->ulIvLen > sizeof(pSession->active_mech_data.gcm_single.iv)) { @@ -764,17 +768,21 @@ CK_RV pkcs11_decrypt( } #endif } -#ifdef ATCA_TA100_SUPPORT - if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) +#if ATCA_TA_SUPPORT + if (atcab_is_ta_device(atcab_get_device_type())) { if (CKR_OK == (rv = pkcs11_lock_device(pLibCtx))) { - if (ATCA_SUCCESS == (status = talib_aes_gcm_keyload(pSession->slot->device_ctx, pKey->slot, 0))) + if (ATCA_SUCCESS == (status = talib_aes128_gcm_keyload(pSession->slot->device_ctx, pKey->slot, 0))) { *pulDataLen = ulEncryptedDataLen - TA_AES_GCM_TAG_LENGTH; - if (ATCA_SUCCESS != (status = talib_aes_gcm_decrypt(pSession->slot->device_ctx, pSession->active_mech_data.gcm_single.aad, - pSession->active_mech_data.gcm_single.aad_len, pSession->active_mech_data.gcm_single.iv, - &pEncryptedData[*pulDataLen], pEncryptedData, (uint16_t)(*pulDataLen), pData))) + cal_buffer aad_buf = CAL_BUF_INIT(pSession->active_mech_data.gcm_single.aad_len, pSession->active_mech_data.gcm_single.aad); + cal_buffer iv_buf = CAL_BUF_INIT(TA_AES_GCM_IV_LENGTH, pSession->active_mech_data.gcm_single.iv); + cal_buffer ciphertext_buf = CAL_BUF_INIT(*pulDataLen, pEncryptedData); + cal_buffer data_buf = CAL_BUF_INIT(ulEncryptedDataLen, pData); + cal_buffer tag_buf = CAL_BUF_INIT(TA_AES_GCM_TAG_LENGTH, &pEncryptedData[*pulDataLen]); + if (ATCA_SUCCESS != (status = talib_aes_gcm_decrypt(pSession->slot->device_ctx, &aad_buf, &iv_buf, &tag_buf, + &ciphertext_buf, &data_buf))) { rv = CKR_ENCRYPTED_DATA_INVALID; } @@ -890,8 +898,8 @@ CK_RV pkcs11_decrypt_update( } #endif } -#ifdef ATCA_TA100_SUPPORT - if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) +#if ATCA_TA_SUPPORT + if (atcab_is_ta_device(atcab_get_device_type())) { rv = CKR_FUNCTION_NOT_SUPPORTED; } @@ -985,7 +993,7 @@ CK_RV pkcs11_decrypt_final(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULO #endif } -#ifdef ATCA_TA100_SUPPORT +#if ATCA_TA_SUPPORT if (atcab_is_ta_device(atcab_get_device_type_ext(pSession->slot->device_ctx))) { rv = CKR_FUNCTION_NOT_SUPPORTED; diff --git a/lib/pkcs11/pkcs11_key.c b/lib/pkcs11/pkcs11_key.c index ef469d2b1..390d01d6c 100644 --- a/lib/pkcs11/pkcs11_key.c +++ b/lib/pkcs11/pkcs11_key.c @@ -87,7 +87,7 @@ static ATCA_STATUS pkcs11_ta_get_pubkey(CK_VOID_PTR pObject, uint8_t buffer[ATCA uint16_t auth_handle; uint16_t publickey_slot = 0; ATCA_STATUS status = ATCA_GEN_FAIL; - uint8_t pubkey_field_handle_info[TA_HANDLE_INFO_SIZE]; + ta_handle_info pubkey_field_handle_info; bool allowed = false; if (CKR_OK != pkcs11_object_get_owner(obj_ptr, &owner_id)) @@ -111,19 +111,18 @@ static ATCA_STATUS pkcs11_ta_get_pubkey(CK_VOID_PTR pObject, uint8_t buffer[ATCA auth_handle = slot_ctx->user_pin_handle; /* Get the pubkey slot value from property of handleinfo */ - publickey_slot = TA_PUB_KIEY_FIELD_HANDLE_MSB | (obj_ptr->handle_info.property & TA_PROPERTY_ATTRIBUTE_MASK); + publickey_slot = TA_HANDLE_LINKED_SHARED_DATA | (obj_ptr->handle_info.property & TA_PROP_PUB_KEY_MASK); - status = talib_info_get_handle_info(device, publickey_slot, pubkey_field_handle_info); + status = talib_info_get_handle_info(device, publickey_slot, &pubkey_field_handle_info); if (ATCA_SUCCESS == status) { /* If the Pub_Key field of the handleinfo references a valid public key, read the public key from the referenced handle */ - if ( ((pubkey_field_handle_info[0] & TA_CLASS_MASK) == TA_CLASS_PUBLIC_KEY) - && ((pubkey_field_handle_info[2] & TA_ROOT_PUB_KEY_MASK) != TA_ROOT_PUB_KEY_MASK)) + if ( ((pubkey_field_handle_info.attributes.element_CKA & TA_HANDLE_INFO_CLASS_MASK) == TA_CLASS_PUBLIC_KEY) + && ((pubkey_field_handle_info.attributes.property & TA_PROP_ROOT_MASK) != TA_PROP_ROOT_MASK)) { - /* coverity[misra_c_2012_rule_11_3_violation] Appropriate usage of the handle_info buffer */ - (void)talib_handle_can_read(device, auth_handle, (ta_element_attributes_t*)pubkey_field_handle_info, &allowed); + (void)talib_handle_can_read(device, auth_handle, &pubkey_field_handle_info.attributes, &allowed); if (allowed) { status = atcab_read_pubkey_ext(device, publickey_slot, buffer); @@ -427,14 +426,14 @@ static CK_RV pkcs11_key_get_ec_point(CK_VOID_PTR pObject, CK_ATTRIBUTE_PTR pAttr if (NULL != obj_ptr && NULL != psession) { ATCA_STATUS status = ATCA_SUCCESS; - CK_UTF8CHAR ec_asn1_key[3 + ATCA_ECCP256_PUBKEY_SIZE] = { 0x04, 0x41, 0x04, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + CK_UTF8CHAR ec_asn1_key[3 + ATCA_ECCP256_PUBKEY_SIZE] = { 0x04, 0x41, 0x04, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; if (NULL != pAttribute->pValue) @@ -659,73 +658,73 @@ static CK_RV pkcs11_key_get_id(CK_VOID_PTR pObject, CK_ATTRIBUTE_PTR pAttribute, */ const pkcs11_attrib_model pkcs11_key_public_attributes[] = { /** Object Class - CK_OBJECT_CLASS */ - { CKA_CLASS, pkcs11_object_get_class }, + { CKA_CLASS, pkcs11_object_get_class }, /** CK_TRUE if object is a token object; CK_FALSE if object is a session object. Default is CK_FALSE. */ - { CKA_TOKEN, pkcs11_attrib_true }, + { CKA_TOKEN, pkcs11_attrib_true }, /** CK_TRUE if object is a private object; CK_FALSE if object is a public object. */ - { CKA_PRIVATE, pkcs11_attrib_false }, + { CKA_PRIVATE, pkcs11_attrib_false }, /** CK_TRUE if object can be modified. Default is CK_TRUE. */ - { CKA_MODIFIABLE, pkcs11_token_get_writable }, + { CKA_MODIFIABLE, pkcs11_token_get_writable }, /** Description of the object(default empty). */ - { CKA_LABEL, pkcs11_object_get_name }, + { CKA_LABEL, pkcs11_object_get_name }, /** CK_TRUE if object can be copied using C_CopyObject.Defaults to CK_TRUE. */ - { CKA_COPYABLE, pkcs11_attrib_false }, + { CKA_COPYABLE, pkcs11_attrib_false }, /** CK_TRUE if the object can be destroyed using C_DestroyObject. Default is CK_TRUE. */ - { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, + { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, /** Type of key */ - { CKA_KEY_TYPE, pkcs11_object_get_type }, + { CKA_KEY_TYPE, pkcs11_object_get_type }, /** Key identifier for key (default empty) */ - { CKA_ID, pkcs11_key_get_id }, + { CKA_ID, pkcs11_key_get_id }, /** Start date for the key (default empty) */ - { CKA_START_DATE, pkcs11_attrib_empty }, + { CKA_START_DATE, pkcs11_attrib_empty }, /** End date for the key (default empty) */ - { CKA_END_DATE, pkcs11_attrib_empty }, + { CKA_END_DATE, pkcs11_attrib_empty }, /** CK_TRUE if key supports key derivation (i.e., if other keys can be derived from this one (default CK_FALSE) */ - { CKA_DERIVE, pkcs11_key_get_derivekey_flag }, + { CKA_DERIVE, pkcs11_key_get_derivekey_flag }, /** CK_TRUE only if key was either generated locally (i.e., on the token) with a C_GenerateKey or C_GenerateKeyPair call created with a C_CopyObject call as a copy of a key which had its CKA_LOCAL attribute set to CK_TRUE */ - { CKA_LOCAL, pkcs11_attrib_true }, + { CKA_LOCAL, pkcs11_attrib_true }, /** Identifier of the mechanism used to generate the key material. */ - { CKA_KEY_GEN_MECHANISM, NULL_PTR }, + { CKA_KEY_GEN_MECHANISM, NULL_PTR }, /** A list of mechanisms allowed to be used with this key. The number of mechanisms in the array is the ulValueLen component of the attribute divided by the size of CK_MECHANISM_TYPE. */ - { CKA_ALLOWED_MECHANISMS, pkcs11_key_get_allowed_mechanisms }, + { CKA_ALLOWED_MECHANISMS, pkcs11_key_get_allowed_mechanisms }, /** DER-encoding of the key subject name (default empty) */ - { CKA_SUBJECT, pkcs11_attrib_empty }, + { CKA_SUBJECT, pkcs11_attrib_empty }, /** CK_TRUE if key supports encryption */ - { CKA_ENCRYPT, NULL_PTR }, + { CKA_ENCRYPT, NULL_PTR }, /** CK_TRUE if key supports verification where the signature is an appendix to the data */ - { CKA_VERIFY, pkcs11_attrib_true }, + { CKA_VERIFY, pkcs11_attrib_true }, /** CK_TRUE if key supports verification where the data is recovered from the signature */ - { CKA_VERIFY_RECOVER, NULL_PTR }, + { CKA_VERIFY_RECOVER, NULL_PTR }, /** CK_TRUE if key supports wrapping (i.e., can be used to wrap other keys) */ - { CKA_WRAP, NULL_PTR }, + { CKA_WRAP, NULL_PTR }, /** The key can be trusted for the application that it was created. The wrapping key can be used to wrap keys with CKA_WRAP_WITH_TRUSTED set to CK_TRUE. */ - { CKA_TRUSTED, NULL_PTR }, + { CKA_TRUSTED, NULL_PTR }, /** For wrapping keys. The attribute template to match against any keys wrapped using this wrapping key. Keys that do not match cannot be wrapped. The number of attributes in the array is the ulValueLen component of the attribute divided by the size of CK_ATTRIBUTE. */ - { CKA_WRAP_TEMPLATE, NULL_PTR }, + { CKA_WRAP_TEMPLATE, NULL_PTR }, /** DER-encoding of the SubjectPublicKeyInfo for this public key. (MAY be empty, DEFAULT derived from the underlying public key data) SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT_STRING } */ - { CKA_PUBLIC_KEY_INFO, pkcs11_key_get_public_key }, + { CKA_PUBLIC_KEY_INFO, pkcs11_key_get_public_key }, /** DER - encoding of an ANSI X9.62 Parameters value Parameters ::= CHOICE { ecParameters ECParameters, namedCurve CURVES.&id({CurveNames}), implicitlyCA NULL } */ - { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, + { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, /** DER - encoding of ANSI X9.62 ECPoint value Q */ - { CKA_EC_POINT, pkcs11_key_get_ec_point }, + { CKA_EC_POINT, pkcs11_key_get_ec_point }, }; const CK_ULONG pkcs11_key_public_attributes_count = (CK_ULONG)(PKCS11_UTIL_ARRAY_SIZE(pkcs11_key_public_attributes)); @@ -740,9 +739,9 @@ const pkcs11_attrib_model pkcs11_key_ec_public_attributes[] = { ecParameters ECParameters, namedCurve CURVES.&id({CurveNames}), implicitlyCA NULL } */ - { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, + { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, /** DER - encoding of ANSI X9.62 ECPoint value Q */ - { CKA_EC_POINT, pkcs11_key_get_ec_point }, + { CKA_EC_POINT, pkcs11_key_get_ec_point }, }; #endif /** @@ -750,81 +749,81 @@ const pkcs11_attrib_model pkcs11_key_ec_public_attributes[] = { */ const pkcs11_attrib_model pkcs11_key_private_attributes[] = { /** Object Class - CK_OBJECT_CLASS */ - { CKA_CLASS, pkcs11_object_get_class }, + { CKA_CLASS, pkcs11_object_get_class }, /** CK_TRUE if object is a token object; CK_FALSE if object is a session object. Default is CK_FALSE. */ - { CKA_TOKEN, pkcs11_attrib_true }, + { CKA_TOKEN, pkcs11_attrib_true }, /** CK_TRUE if object is a private object; CK_FALSE if object is a public object. */ - { CKA_PRIVATE, pkcs11_attrib_true }, + { CKA_PRIVATE, pkcs11_attrib_true }, /** CK_TRUE if object can be modified. Default is CK_TRUE. */ - { CKA_MODIFIABLE, pkcs11_token_get_writable }, + { CKA_MODIFIABLE, pkcs11_token_get_writable }, /** Description of the object(default empty). */ - { CKA_LABEL, pkcs11_object_get_name }, + { CKA_LABEL, pkcs11_object_get_name }, /** CK_TRUE if object can be copied using C_CopyObject.Defaults to CK_TRUE. */ - { CKA_COPYABLE, pkcs11_attrib_false }, + { CKA_COPYABLE, pkcs11_attrib_false }, /** CK_TRUE if the object can be destroyed using C_DestroyObject. Default is CK_TRUE. */ - { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, + { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, /** Type of key */ - { CKA_KEY_TYPE, pkcs11_object_get_type }, + { CKA_KEY_TYPE, pkcs11_object_get_type }, /** Key identifier for key (default empty) */ - { CKA_ID, pkcs11_key_get_id }, + { CKA_ID, pkcs11_key_get_id }, /** Start date for the key (default empty) */ - { CKA_START_DATE, pkcs11_attrib_empty }, + { CKA_START_DATE, pkcs11_attrib_empty }, /** End date for the key (default empty) */ - { CKA_END_DATE, pkcs11_attrib_empty }, + { CKA_END_DATE, pkcs11_attrib_empty }, /** CK_TRUE if key supports key derivation (i.e., if other keys can be derived from this one (default CK_FALSE) */ - { CKA_DERIVE, pkcs11_key_get_derivekey_flag }, + { CKA_DERIVE, pkcs11_key_get_derivekey_flag }, /** CK_TRUE only if key was either generated locally (i.e., on the token) with a C_GenerateKey or C_GenerateKeyPair call created with a C_CopyObject call as a copy of a key which had its CKA_LOCAL attribute set to CK_TRUE */ - { CKA_LOCAL, pkcs11_key_get_local_flag }, + { CKA_LOCAL, pkcs11_key_get_local_flag }, /** Identifier of the mechanism used to generate the key material. */ - { CKA_KEY_GEN_MECHANISM, NULL_PTR }, + { CKA_KEY_GEN_MECHANISM, NULL_PTR }, /** A list of mechanisms allowed to be used with this key. The number of mechanisms in the array is the ulValueLen component of the attribute divided by the size of CK_MECHANISM_TYPE. */ - { CKA_ALLOWED_MECHANISMS, pkcs11_key_get_allowed_mechanisms }, + { CKA_ALLOWED_MECHANISMS, pkcs11_key_get_allowed_mechanisms }, /** DER-encoding of the key subject name (default empty) */ - { CKA_SUBJECT, pkcs11_attrib_empty }, + { CKA_SUBJECT, pkcs11_attrib_empty }, /** CK_TRUE if key is sensitive */ - { CKA_SENSITIVE, pkcs11_token_get_access_type }, + { CKA_SENSITIVE, pkcs11_token_get_access_type }, /** CK_TRUE if key supports decryption */ - { CKA_DECRYPT, NULL_PTR }, + { CKA_DECRYPT, NULL_PTR }, /** CK_TRUE if key supports signatures where the signature is an appendix to the data */ - { CKA_SIGN, pkcs11_attrib_true }, + { CKA_SIGN, pkcs11_attrib_true }, /** CK_TRUE if key supports signatures where the data can be recovered from the signature9 */ - { CKA_SIGN_RECOVER, NULL_PTR }, + { CKA_SIGN_RECOVER, NULL_PTR }, /** CK_TRUE if key supports unwrapping (i.e., can be used to unwrap other keys)9 */ - { CKA_UNWRAP, NULL_PTR }, + { CKA_UNWRAP, NULL_PTR }, /** CK_TRUE if key is extractable and can be wrapped */ - { CKA_EXTRACTABLE, pkcs11_attrib_false }, + { CKA_EXTRACTABLE, pkcs11_attrib_false }, /** CK_TRUE if key has always had the CKA_SENSITIVE attribute set to CK_TRUE */ - { CKA_ALWAYS_SENSITIVE, pkcs11_token_get_access_type }, + { CKA_ALWAYS_SENSITIVE, pkcs11_token_get_access_type }, /** CK_TRUE if key has never had the CKA_EXTRACTABLE attribute set to CK_TRUE */ - { CKA_NEVER_EXTRACTABLE, pkcs11_token_get_access_type }, + { CKA_NEVER_EXTRACTABLE, pkcs11_token_get_access_type }, /** CK_TRUE if the key can only be wrapped with a wrapping key that has CKA_TRUSTED set to CK_TRUE. Default is CK_FALSE. */ - { CKA_WRAP_WITH_TRUSTED, NULL_PTR }, + { CKA_WRAP_WITH_TRUSTED, NULL_PTR }, /** For wrapping keys. The attribute template to match against any keys wrapped using this wrapping key. Keys that do not match cannot be wrapped. The number of attributes in the array is the ulValueLen component of the attribute divided by the size of CK_ATTRIBUTE. */ - { CKA_UNWRAP_TEMPLATE, NULL_PTR }, + { CKA_UNWRAP_TEMPLATE, NULL_PTR }, /** If CK_TRUE, the user has to supply the PIN for each use (sign or decrypt) with the key. Default is CK_FALSE. */ - { CKA_ALWAYS_AUTHENTICATE, pkcs11_key_auth_required }, + { CKA_ALWAYS_AUTHENTICATE, pkcs11_key_auth_required }, /** DER-encoding of the SubjectPublicKeyInfo for the associated public key (MAY be empty; DEFAULT derived from the underlying private key data; MAY be manually set for specific key types; if set; MUST be consistent with the underlying private key data) */ - { CKA_PUBLIC_KEY_INFO, pkcs11_key_get_public_key }, + { CKA_PUBLIC_KEY_INFO, pkcs11_key_get_public_key }, /** DER - encoding of an ANSI X9.62 Parameters value Parameters ::= CHOICE { ecParameters ECParameters, namedCurve CURVES.&id({CurveNames}), implicitlyCA NULL } */ - { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, + { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, /** DER - encoding of ANSI X9.62 ECPoint value Q */ - { CKA_EC_POINT, pkcs11_key_get_ec_point }, + { CKA_EC_POINT, pkcs11_key_get_ec_point }, /** The value of the private key should remain private. A NULL function pointer is interpreted as a sensitive attribute. */ - { CKA_VALUE, NULL_PTR }, + { CKA_VALUE, NULL_PTR }, }; const CK_ULONG pkcs11_key_private_attributes_count = (CK_ULONG)(PKCS11_UTIL_ARRAY_SIZE(pkcs11_key_private_attributes)); @@ -836,21 +835,21 @@ const CK_ULONG pkcs11_key_private_attributes_count = (CK_ULONG)(PKCS11_UTIL_ARRA */ const pkcs11_attrib_model pkcs11_key_rsa_private_attributes[] = { /** Big integer Modulus n */ - { CKA_MODULUS, NULL_PTR }, + { CKA_MODULUS, NULL_PTR }, /** Big integer Public exponent e */ - { CKA_PUBLIC_EXPONENT, NULL_PTR }, + { CKA_PUBLIC_EXPONENT, NULL_PTR }, /** Big integer Private exponent d */ - { CKA_PRIVATE_EXPONENT, NULL_PTR }, + { CKA_PRIVATE_EXPONENT, NULL_PTR }, /** Big integer Prime p */ - { CKA_PRIME_1, NULL_PTR }, + { CKA_PRIME_1, NULL_PTR }, /** Big integer Prime q */ - { CKA_PRIME_2, NULL_PTR }, + { CKA_PRIME_2, NULL_PTR }, /** Big integer Private exponent d modulo p - 1 */ - { CKA_EXPONENT_1, NULL_PTR }, + { CKA_EXPONENT_1, NULL_PTR }, /** Big integer Private exponent d modulo q - 1 */ - { CKA_EXPONENT_2, NULL_PTR }, + { CKA_EXPONENT_2, NULL_PTR }, /** Big integer CRT coefficient q - 1 mod p */ - { CKA_COEFFICIENT, NULL_PTR }, + { CKA_COEFFICIENT, NULL_PTR }, }; /** @@ -862,9 +861,9 @@ const pkcs11_attrib_model pkcs11_key_ec_private_attributes[] = { ecParameters ECParameters, namedCurve CURVES.&id({CurveNames}), implicitlyCA NULL } */ - { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, + { CKA_EC_PARAMS, pkcs11_key_get_ec_params }, /** DER - encoding of ANSI X9.62 ECPoint value Q */ - { CKA_EC_POINT, pkcs11_key_get_ec_point }, + { CKA_EC_POINT, pkcs11_key_get_ec_point }, }; #endif @@ -873,82 +872,82 @@ const pkcs11_attrib_model pkcs11_key_ec_private_attributes[] = { */ const pkcs11_attrib_model pkcs11_key_secret_attributes[] = { /** Object Class - CK_OBJECT_CLASS */ - { CKA_CLASS, pkcs11_object_get_class }, + { CKA_CLASS, pkcs11_object_get_class }, /** CK_TRUE if object is a token object; CK_FALSE if object is a session object. Default is CK_FALSE. */ - { CKA_TOKEN, pkcs11_token_get_storage }, + { CKA_TOKEN, pkcs11_token_get_storage }, /** CK_TRUE if object is a private object; CK_FALSE if object is a public object. */ - { CKA_PRIVATE, pkcs11_token_get_access_type }, + { CKA_PRIVATE, pkcs11_token_get_access_type }, /** CK_TRUE if object can be modified. Default is CK_TRUE. */ - { CKA_MODIFIABLE, pkcs11_token_get_writable }, + { CKA_MODIFIABLE, pkcs11_token_get_writable }, /** Description of the object(default empty). */ - { CKA_LABEL, pkcs11_object_get_name }, + { CKA_LABEL, pkcs11_object_get_name }, /** CK_TRUE if object can be copied using C_CopyObject.Defaults to CK_TRUE. */ - { CKA_COPYABLE, pkcs11_attrib_false }, + { CKA_COPYABLE, pkcs11_attrib_false }, /** CK_TRUE if the object can be destroyed using C_DestroyObject. Default is CK_TRUE. */ - { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, + { CKA_DESTROYABLE, pkcs11_object_get_destroyable }, /** Type of key */ - { CKA_KEY_TYPE, pkcs11_object_get_type }, + { CKA_KEY_TYPE, pkcs11_object_get_type }, /** Key identifier for key (default empty) */ - { CKA_ID, pkcs11_attrib_empty }, + { CKA_ID, pkcs11_attrib_empty }, /** Start date for the key (default empty) */ - { CKA_START_DATE, pkcs11_attrib_empty }, + { CKA_START_DATE, pkcs11_attrib_empty }, /** End date for the key (default empty) */ - { CKA_END_DATE, pkcs11_attrib_empty }, + { CKA_END_DATE, pkcs11_attrib_empty }, /** CK_TRUE if key supports key derivation (i.e., if other keys can be derived from this one (default CK_FALSE) */ - { CKA_DERIVE, pkcs11_attrib_true }, + { CKA_DERIVE, pkcs11_attrib_true }, /** CK_TRUE only if key was either generated locally (i.e., on the token) with a C_GenerateKey or C_GenerateKeyPair call created with a C_CopyObject call as a copy of a key which had its CKA_LOCAL attribute set to CK_TRUE */ - { CKA_LOCAL, pkcs11_key_get_local_flag }, + { CKA_LOCAL, pkcs11_key_get_local_flag }, /** Identifier of the mechanism used to generate the key material. */ - { CKA_KEY_GEN_MECHANISM, NULL_PTR }, + { CKA_KEY_GEN_MECHANISM, NULL_PTR }, /** A list of mechanisms allowed to be used with this key. The number of mechanisms in the array is the ulValueLen component of the attribute divided by the size of CK_MECHANISM_TYPE. */ - { CKA_ALLOWED_MECHANISMS, pkcs11_key_get_allowed_mechanisms }, + { CKA_ALLOWED_MECHANISMS, pkcs11_key_get_allowed_mechanisms }, /** CK_TRUE if key is sensitive */ - { CKA_SENSITIVE, pkcs11_token_get_access_type }, + { CKA_SENSITIVE, pkcs11_token_get_access_type }, /** CK_TRUE if key supports encryption */ - { CKA_ENCRYPT, NULL_PTR }, + { CKA_ENCRYPT, NULL_PTR }, /** CK_TRUE if key supports decryption */ - { CKA_DECRYPT, NULL_PTR }, + { CKA_DECRYPT, NULL_PTR }, /** CK_TRUE if key supports signatures (i.e., authentication codes) where the signature is an appendix to the data */ - { CKA_SIGN, NULL_PTR }, + { CKA_SIGN, NULL_PTR }, /** CK_TRUE if key supports verification (i.e., of authentication codes) where the signature is an appendix to the data */ - { CKA_VERIFY, NULL_PTR }, + { CKA_VERIFY, NULL_PTR }, /** CK_TRUE if key supports wrapping (i.e., can be used to wrap other keys) */ - { CKA_WRAP, NULL_PTR }, + { CKA_WRAP, NULL_PTR }, /** CK_TRUE if key supports unwrapping (i.e., can be used to unwrap other keys) */ - { CKA_UNWRAP, NULL_PTR }, + { CKA_UNWRAP, NULL_PTR }, /** CK_TRUE if key is extractable and can be wrapped */ - { CKA_EXTRACTABLE, pkcs11_attrib_false }, + { CKA_EXTRACTABLE, pkcs11_attrib_false }, /** CK_TRUE if key has always had the CKA_SENSITIVE attribute set to CK_TRUE */ - { CKA_ALWAYS_SENSITIVE, pkcs11_token_get_access_type }, + { CKA_ALWAYS_SENSITIVE, pkcs11_token_get_access_type }, /** CK_TRUE if key has never had the CKA_EXTRACTABLE attribute set to CK_TRUE */ - { CKA_NEVER_EXTRACTABLE, pkcs11_token_get_access_type }, + { CKA_NEVER_EXTRACTABLE, pkcs11_token_get_access_type }, /** Key checksum */ - { CKA_CHECK_VALUE, pkcs11_key_get_check_value }, + { CKA_CHECK_VALUE, pkcs11_key_get_check_value }, /** CK_TRUE if the key can only be wrapped with a wrapping key that has CKA_TRUSTED set to CK_TRUE. Default is CK_FALSE. */ - { CKA_WRAP_WITH_TRUSTED, NULL_PTR }, + { CKA_WRAP_WITH_TRUSTED, NULL_PTR }, /** The wrapping key can be used to wrap keys with CKA_WRAP_WITH_TRUSTED set to CK_TRUE. */ - { CKA_TRUSTED, NULL_PTR }, + { CKA_TRUSTED, NULL_PTR }, /** For wrapping keys. The attribute template to match against any keys wrapped using this wrapping key. Keys that do not match cannot be wrapped. The number of attributes in the array is the ulValueLen component of the attribute divided by the size of CK_ATTRIBUTE */ - { CKA_WRAP_TEMPLATE, NULL_PTR }, + { CKA_WRAP_TEMPLATE, NULL_PTR }, /** For wrapping keys. The attribute template to apply to any keys unwrapped using this wrapping key. Any user supplied template is applied after this template as if the object has already been created. The number of attributes in the array is the ulValueLen component of the attribute divided by the size of CK_ATTRIBUTE. */ - { CKA_UNWRAP_TEMPLATE, NULL_PTR }, + { CKA_UNWRAP_TEMPLATE, NULL_PTR }, /* Key value */ - { CKA_VALUE, pkcs11_key_get_secret }, + { CKA_VALUE, pkcs11_key_get_secret }, /* Length in bytes of the key */ - { CKA_VALUE_LEN, pkcs11_key_get_secret_length }, + { CKA_VALUE_LEN, pkcs11_key_get_secret_length }, }; const CK_ULONG pkcs11_key_secret_attributes_count = (CK_ULONG)(PKCS11_UTIL_ARRAY_SIZE(pkcs11_key_secret_attributes)); @@ -988,7 +987,8 @@ static CK_RV pkcs11_key_privwrite_ca(CK_VOID_PTR pSession, pkcs11_object_ptr pOb else { #if ATCA_TA_SUPPORT - rv = pkcs11_util_convert_rv(talib_write_element(session_ctx->slot->device_ctx, pObject->slot, (uint16_t)ulValueLen, (uint8_t*)pValue)); + cal_buffer sValue = CAL_BUF_INIT(ulValueLen, pValue); + rv = pkcs11_util_convert_rv(talib_write_element(session_ctx->slot->device_ctx, pObject->slot, &sValue)); #endif } } diff --git a/lib/pkcs11/pkcs11_mech.c b/lib/pkcs11/pkcs11_mech.c index 89a7ac2ae..b3b6165ca 100644 --- a/lib/pkcs11/pkcs11_mech.c +++ b/lib/pkcs11/pkcs11_mech.c @@ -224,7 +224,7 @@ static pcks11_mech_table_e pkcs11_mech_list_ecc608[] = { }; #endif -#ifdef ATCA_TA100_SUPPORT +#if ATCA_TA_SUPPORT /* CK_MECHANISM_TYPE, MinKeySize, MaxKeySize, Flags */ static pcks11_mech_table_e pkcs11_mech_list_ta100[] = { //CKM_DH_PKCS_KEY_PAIR_GEN, @@ -387,7 +387,7 @@ CK_RV pkcs11_mech_get_list(CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismLi mech_list_ptr = pkcs11_mech_list_ecc608; break; #endif -#ifdef ATCA_TA100_SUPPORT +#if ATCA_TA_SUPPORT case TA100: mech_cnt = (CK_ULONG)(TABLE_SIZE(pkcs11_mech_list_ta100)); mech_list_ptr = pkcs11_mech_list_ta100; @@ -455,7 +455,7 @@ CK_RV pkcs_mech_get_info(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM mech_info_ptr = pkcs11_mech_find_info(pkcs11_mech_list_ecc608, (CK_ULONG)(TABLE_SIZE(pkcs11_mech_list_ecc608)), type); break; #endif -#ifdef ATCA_TA100_SUPPORT +#if ATCA_TA_SUPPORT case TA100: mech_info_ptr = pkcs11_mech_find_info(pkcs11_mech_list_ta100, (CK_ULONG)(TABLE_SIZE(pkcs11_mech_list_ta100)), type); break; diff --git a/lib/pkcs11/pkcs11_object.c b/lib/pkcs11/pkcs11_object.c index 8f94894c1..5fbc345ba 100644 --- a/lib/pkcs11/pkcs11_object.c +++ b/lib/pkcs11/pkcs11_object.c @@ -672,7 +672,7 @@ CK_RV pkcs11_object_deinit(pkcs11_lib_ctx_ptr pContext) ATCA_STATUS pkcs11_object_load_handle_info(ATCADevice device, pkcs11_lib_ctx_ptr pContext) { ATCA_STATUS status = ATCA_GEN_FAIL; - uint8_t handle_info[TA_HANDLE_INFO_SIZE]; + ta_handle_info handle_info; bool bHandleinfosuccess = false; ((void)pContext); @@ -685,11 +685,9 @@ ATCA_STATUS pkcs11_object_load_handle_info(ATCADevice device, pkcs11_lib_ctx_ptr if (pObj->slot > 15u) { pObj->flags |= PKCS11_OBJECT_FLAG_TA_TYPE; - /* Getting device context using atcab_get_device() instead of device context from slot context : Intentional*/ - if (ATCA_SUCCESS == talib_info_get_handle_info(device, pObj->slot, handle_info)) + if (ATCA_SUCCESS == talib_info_get_handle_info(device, pObj->slot, &handle_info)) { - /* coverity[misra_c_2012_rule_11_3_violation] Appropriate usage of the handle_info buffer */ - (void)memcpy(&pObj->handle_info, (ta_element_attributes_t*)handle_info, sizeof(ta_element_attributes_t)); + (void)memcpy(&pObj->handle_info, &handle_info.attributes, sizeof(ta_element_attributes_t)); bHandleinfosuccess = true; } else diff --git a/lib/pkcs11/pkcs11_session.c b/lib/pkcs11/pkcs11_session.c index 9cea39bde..683b63f3c 100644 --- a/lib/pkcs11/pkcs11_session.c +++ b/lib/pkcs11/pkcs11_session.c @@ -556,8 +556,9 @@ CK_RV pkcs11_session_login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK TA_AUTH_GENERATE_OPT_NONCE_SRC_MASK | TA_AUTH_GENERATE_OPT_RANDOM_MASK, auth_i_nonce); if (CKR_OK == (rv = pkcs11_util_convert_rv(status))) { + cal_buffer key = CAL_BUF_INIT(16U, session_ctx->slot->read_key); status = talib_auth_startup(session_ctx->slot->device_ctx, session_ctx->slot->user_pin_handle, - TA_AUTH_ALG_ID_GCM, 0x1FFF, 16, session_ctx->slot->read_key, auth_i_nonce, auth_r_nonce); + TA_AUTH_ALG_ID_GCM128, 0x1FFF, &key, auth_i_nonce, auth_r_nonce); rv = pkcs11_util_convert_rv(status); } diff --git a/lib/pkcs11/pkcs11_session.h b/lib/pkcs11/pkcs11_session.h index 61616ab73..17cfba9ac 100644 --- a/lib/pkcs11/pkcs11_session.h +++ b/lib/pkcs11/pkcs11_session.h @@ -30,6 +30,7 @@ #include "cryptoki.h" #include "pkcs11_config.h" +#include "cal_internal.h" #ifdef __cplusplus extern "C" { @@ -43,8 +44,8 @@ typedef struct pkcs11_session_mech_ctx_s atca_hmac_sha256_ctx_t hmac; atca_sha256_ctx_t sha256; #else - atcac_hmac_sha256_ctx hmac; - atcac_sha2_256_ctx sha256; + atcac_hmac_ctx_t hmac; + atcac_sha2_256_ctx_t sha256; #endif atca_aes_cmac_ctx_t cmac; atca_aes_cbc_ctx_t cbc; @@ -55,7 +56,7 @@ typedef struct pkcs11_session_mech_ctx_s CK_BYTE tag_len; } gcm; #endif -#ifdef ATCA_TA100_SUPPORT +#if ATCA_TA_SUPPORT struct { uint8_t iv[TA_AES_GCM_IV_LENGTH]; diff --git a/lib/pkcs11/pkcs11_slot.c b/lib/pkcs11/pkcs11_slot.c index 21bc93ceb..85dc324a0 100644 --- a/lib/pkcs11/pkcs11_slot.c +++ b/lib/pkcs11/pkcs11_slot.c @@ -280,8 +280,7 @@ CK_RV pkcs11_slot_init(CK_SLOT_ID slotID) slot_ctx->device_ctx = NULL; status = atcab_init_ext(&slot_ctx->device_ctx, ifacecfg); } - } - while (retries-- != 0 && status != ATCA_SUCCESS); + } while (retries-- != 0 && status != ATCA_SUCCESS); #ifdef ATCA_HAL_I2C if (ATCA_SUCCESS != status) @@ -299,19 +298,17 @@ CK_RV pkcs11_slot_init(CK_SLOT_ID slotID) slot_ctx->device_ctx = NULL; status = atcab_init_ext(&slot_ctx->device_ctx, ifacecfg); retries--; - } - while ((retries != 0) && (ATCA_SUCCESS != status)); + } while ((retries != 0) && (ATCA_SUCCESS != status)); } } #endif #if defined(PKCS11_508_SUPPORT) && defined(PKCS11_608_SUPPORT) /* If both are supported check the device to verify */ - if ((ATCA_SUCCESS == status) && if (atcab_is_ca_device(ifacecfg->devtype)) - ) - { - status = pkcs11_slot_check_device_type(ifacecfg, slot_ctx->device_ctx); - } + if ((ATCA_SUCCESS == status) && atcab_is_ca_device(ifacecfg->devtype)) + { + status = pkcs11_slot_check_device_type(ifacecfg, slot_ctx->device_ctx); + } #endif if (ATCA_SUCCESS == status) diff --git a/lib/pkcs11/pkcs11_slot.c.uncrustify b/lib/pkcs11/pkcs11_slot.c.uncrustify new file mode 100644 index 000000000..e69de29bb diff --git a/lib/pkcs11/pkcs11_token.c b/lib/pkcs11/pkcs11_token.c index 1b5208279..98d3aec95 100644 --- a/lib/pkcs11/pkcs11_token.c +++ b/lib/pkcs11/pkcs11_token.c @@ -98,7 +98,7 @@ static const char * pkcs11_token_device(ATCADeviceType dev_type, uint8_t info[4] rv = "ATECC508A"; break; case 0x60: - if (0x02u < info[1]) + if (0x02u < info[3]) { rv = "ATECC608B"; } @@ -407,10 +407,10 @@ CK_RV pkcs11_token_get_writable(CK_VOID_PTR pObject, CK_ATTRIBUTE_PTR pAttribute } else { - uint8_t user_pin_info[TA_HANDLE_INFO_SIZE]; - if (ATCA_SUCCESS == talib_info_get_handle_info(pSession->slot->device_ctx, obj_ptr->slot, user_pin_info)) + ta_handle_info user_pin_info; + if (ATCA_SUCCESS == talib_info_get_handle_info(pSession->slot->device_ctx, obj_ptr->slot, &user_pin_info)) { - if (obj_ptr->handle_info.write_key == (user_pin_info[1] & obj_ptr->handle_info.write_key)) + if (obj_ptr->handle_info.write_key == ((uint8_t)user_pin_info.attributes.property & obj_ptr->handle_info.write_key)) { rv = pkcs11_attrib_true(pObject, pAttribute, NULL); } @@ -699,7 +699,7 @@ CK_RV pkcs11_token_convert_pin_to_key( #ifdef PKCS11_PIN_PBKDF2_EN status = atcac_pbkdf2_sha256(PKCS11_PIN_PBKDF2_ITERATIONS, pPin, ulPinLen, pSalt, ulSaltLen, pKey, ulKeyLen); #else - atcac_sha2_256_ctx ctx; + atcac_sha2_256_ctx_t ctx; status = (ATCA_STATUS)atcac_sw_sha2_256_init(&ctx); if (ATCA_SUCCESS == status) @@ -728,7 +728,7 @@ CK_RV pkcs11_token_set_pin(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin, pkcs11_session_ctx_ptr pSession; pkcs11_lib_ctx_ptr pLibCtx; uint16_t pin_slot; - uint8_t buf[32]; + uint8_t buf[32] = { 0 }; CK_RV rv; bool is_ca_device = false; uint16_t key_len = 0; diff --git a/lib/wolfssl/atca_wolfssl_interface.c b/lib/wolfssl/atca_wolfssl_interface.c index 94aaefa57..efc2b250c 100644 --- a/lib/wolfssl/atca_wolfssl_interface.c +++ b/lib/wolfssl/atca_wolfssl_interface.c @@ -26,9 +26,10 @@ */ #include "cryptoauthlib.h" -#include "crypto/atca_crypto_sw.h" #ifdef ATCA_WOLFSSL +#include "crypto/atca_crypto_sw.h" +#include "atca_wolfssl_internal.h" /** \brief Return Random Bytes * @@ -65,18 +66,18 @@ ATCA_STATUS atcac_sw_random(uint8_t* data, size_t data_size) * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_encrypt_start( - atcac_aes_gcm_ctx * ctx, /**< [in] AES-GCM Context */ - const uint8_t * key, /**< [in] AES Key */ - const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ - const uint8_t * iv, /**< [in] Initialization vector input */ - const uint8_t iv_len /**< [in] Length of the initialization vector */ + struct atcac_aes_gcm_ctx * ctx, /**< [in] AES-GCM Context */ + const uint8_t * key, /**< [in] AES Key */ + const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ + const uint8_t * iv, /**< [in] Initialization vector input */ + const uint8_t iv_len /**< [in] Length of the initialization vector */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - memset(ctx, 0, sizeof(atcac_aes_gcm_ctx)); + memset(ctx, 0, sizeof(atcac_aes_gcm_ctx_t)); ctx->iv_len = iv_len; if (iv) @@ -91,14 +92,14 @@ ATCA_STATUS atcac_aes_gcm_encrypt_start( } ATCA_STATUS atcac_aes_gcm_encrypt( - atcac_aes_gcm_ctx* ctx, - const uint8_t* plaintext, - const size_t pt_len, - uint8_t* ciphertext, - uint8_t* tag, - size_t tag_len, - const uint8_t* aad, - const size_t aad_len + struct atcac_aes_gcm_ctx* ctx, + const uint8_t* plaintext, + const size_t pt_len, + uint8_t* ciphertext, + uint8_t* tag, + size_t tag_len, + const uint8_t* aad, + const size_t aad_len ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -118,18 +119,18 @@ ATCA_STATUS atcac_aes_gcm_encrypt( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_gcm_decrypt_start( - atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ - const uint8_t* key, /**< [in] AES Key */ - const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ - const uint8_t* iv, /**< [in] Initialization vector input */ - const uint8_t iv_len /**< [in] Length of the initialization vector */ + struct atcac_aes_gcm_ctx* ctx, /**< [in] AES-GCM Context */ + const uint8_t* key, /**< [in] AES Key */ + const uint8_t key_len, /**< [in] Length of the AES key - should be 16 or 32*/ + const uint8_t* iv, /**< [in] Initialization vector input */ + const uint8_t iv_len /**< [in] Length of the initialization vector */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; if (ctx) { - memset(ctx, 0, sizeof(atcac_aes_gcm_ctx)); + memset(ctx, 0, sizeof(atcac_aes_gcm_ctx_t)); ctx->iv_len = iv_len; if (iv) @@ -144,15 +145,15 @@ ATCA_STATUS atcac_aes_gcm_decrypt_start( } ATCA_STATUS atcac_aes_gcm_decrypt( - atcac_aes_gcm_ctx* ctx, - const uint8_t* ciphertext, - const size_t ct_len, - uint8_t* plaintext, - const uint8_t* tag, - size_t tag_len, - const uint8_t* aad, - const size_t aad_len, - bool* is_verified + struct atcac_aes_gcm_ctx* ctx, + const uint8_t* ciphertext, + const size_t ct_len, + uint8_t* plaintext, + const uint8_t* tag, + size_t tag_len, + const uint8_t* aad, + const size_t aad_len, + bool* is_verified ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -177,10 +178,10 @@ ATCA_STATUS atcac_aes_gcm_decrypt( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha1_init( - atcac_sha1_ctx* ctx /**< [in] pointer to a hash context */ + struct atcac_sha1_ctx* ctx /**< [in] pointer to a hash context */ ) { - return (!wc_InitSha(ctx)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_InitSha((wc_Sha*)ctx)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Add data to a SHA1 hash. @@ -188,12 +189,12 @@ int atcac_sw_sha1_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha1_update( - atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ - const uint8_t* data, /**< [in] input data buffer */ - size_t data_size /**< [in] input data length */ + struct atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ + const uint8_t* data, /**< [in] input data buffer */ + size_t data_size /**< [in] input data length */ ) { - return (!wc_ShaUpdate(ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_ShaUpdate((wc_Sha*)ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Complete the SHA1 hash in software and return the digest. @@ -201,11 +202,11 @@ int atcac_sw_sha1_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha1_finish( - atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ - uint8_t digest[ATCA_SHA1_DIGEST_SIZE] /**< [out] output buffer (20 bytes) */ + struct atcac_sha1_ctx* ctx, /**< [in] pointer to a hash context */ + uint8_t digest[ATCA_SHA1_DIGEST_SIZE] /**< [out] output buffer (20 bytes) */ ) { - return (!wc_ShaFinal(ctx, digest)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_ShaFinal((wc_Sha*)ctx, digest)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Initialize context for performing SHA256 hash in software. @@ -213,10 +214,10 @@ int atcac_sw_sha1_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha2_256_init( - atcac_sha2_256_ctx* ctx /**< [in] pointer to a hash context */ + struct atcac_sha2_256_ctx* ctx /**< [in] pointer to a hash context */ ) { - return (!wc_InitSha256(ctx)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_InitSha256((wc_Sha256*)ctx)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Add data to a SHA256 hash. @@ -224,12 +225,12 @@ int atcac_sw_sha2_256_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha2_256_update( - atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ - const uint8_t* data, /**< [in] input data buffer */ - size_t data_size /**< [in] input data length */ + struct atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ + const uint8_t* data, /**< [in] input data buffer */ + size_t data_size /**< [in] input data length */ ) { - return (!wc_Sha256Update(ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_Sha256Update((wc_Sha256*)ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Complete the SHA256 hash in software and return the digest. @@ -237,11 +238,11 @@ int atcac_sw_sha2_256_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ int atcac_sw_sha2_256_finish( - atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ - uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE] /**< [out] output buffer (32 bytes) */ + struct atcac_sha2_256_ctx* ctx, /**< [in] pointer to a hash context */ + uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE] /**< [out] output buffer (32 bytes) */ ) { - return (!wc_Sha256Final(ctx, digest)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_Sha256Final((wc_Sha256*)ctx, digest)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Initialize context for performing CMAC in software. @@ -249,12 +250,12 @@ int atcac_sw_sha2_256_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_init( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - const uint8_t* key, /**< [in] key value to use */ - const uint8_t key_len /**< [in] length of the key */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + const uint8_t* key, /**< [in] key value to use */ + const uint8_t key_len /**< [in] length of the key */ ) { - return (!wc_InitCmac(ctx, key, key_len, WC_CMAC_AES, NULL)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_InitCmac((Cmac*)ctx, key, key_len, WC_CMAC_AES, NULL)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Update CMAC context with input data @@ -262,12 +263,12 @@ ATCA_STATUS atcac_aes_cmac_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_update( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - const uint8_t* data, /**< [in] input data */ - const size_t data_size /**< [in] length of input data */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + const uint8_t* data, /**< [in] input data */ + const size_t data_size /**< [in] length of input data */ ) { - return (!wc_CmacUpdate(ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_CmacUpdate((Cmac*)ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Finish CMAC calculation and clear the CMAC context @@ -275,9 +276,9 @@ ATCA_STATUS atcac_aes_cmac_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_aes_cmac_finish( - atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ - uint8_t* cmac, /**< [out] cmac value */ - size_t* cmac_size /**< [inout] length of cmac */ + struct atcac_aes_cmac_ctx* ctx, /**< [in] pointer to a aes-cmac context */ + uint8_t* cmac, /**< [out] cmac value */ + size_t* cmac_size /**< [inout] length of cmac */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -285,7 +286,7 @@ ATCA_STATUS atcac_aes_cmac_finish( if (cmac_size) { word32 out_len = *cmac_size; - status = (!wc_CmacFinal(ctx, cmac, &out_len)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + status = (!wc_CmacFinal((Cmac*)ctx, cmac, &out_len)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; *cmac_size = out_len; } return status; @@ -296,19 +297,19 @@ ATCA_STATUS atcac_aes_cmac_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_init( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ - atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ - const uint8_t* key, /**< [in] key value to use */ - const uint8_t key_len /**< [in] length of the key */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + struct atcac_sha2_256_ctx* sha256_ctx, /**< [in] pointer to a sha256 context */ + const uint8_t* key, /**< [in] key value to use */ + const uint8_t key_len /**< [in] length of the key */ ) { - int ret = wc_HmacInit(ctx, NULL, 0); + int ret = wc_HmacInit((Hmac*)ctx, NULL, 0); (void)sha256_ctx; if (!ret) { - ret = wc_HmacSetKey(ctx, SHA256, key, key_len); + ret = wc_HmacSetKey((Hmac*)ctx, SHA256, key, key_len); } return (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; @@ -319,12 +320,12 @@ ATCA_STATUS atcac_sha256_hmac_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_update( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ const uint8_t* data, /**< [in] input data */ size_t data_size /**< [in] length of input data */ ) { - return (!wc_HmacUpdate(ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; + return (!wc_HmacUpdate((Hmac*)ctx, data, data_size)) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } /** \brief Finish HMAC calculation and clear the HMAC context @@ -332,16 +333,16 @@ ATCA_STATUS atcac_sha256_hmac_update( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_sha256_hmac_finish( - atcac_hmac_sha256_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ + struct atcac_hmac_ctx* ctx, /**< [in] pointer to a sha256-hmac context */ uint8_t* digest, /**< [out] hmac value */ size_t* digest_len /**< [inout] length of hmac */ ) { ((void)digest_len); - int ret = wc_HmacFinal(ctx, digest); + int ret = wc_HmacFinal((Hmac*)ctx, digest); - wc_HmacFree(ctx); + wc_HmacFree((Hmac*)ctx); return (!ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } @@ -351,11 +352,11 @@ ATCA_STATUS atcac_sha256_hmac_finish( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_init( - atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ - const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ - size_t buflen, /**< [in] length of the input buffer */ - uint8_t key_type, - bool pubkey /**< [in] buffer is a public key */ + struct atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ + const uint8_t* buf, /**< [in] buffer containing a pem encoded key */ + size_t buflen, /**< [in] length of the input buffer */ + uint8_t key_type, + bool pubkey /**< [in] buffer is a public key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -397,6 +398,10 @@ ATCA_STATUS atcac_pk_init( } } } + if (ATCA_SUCCESS == status) + { + ctx->key_type = key_type; + } } return status; } @@ -406,10 +411,10 @@ ATCA_STATUS atcac_pk_init( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_init_pem( - atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ - const uint8_t * buf, /**< [in] buffer containing a pem encoded key */ - size_t buflen, /**< [in] length of the input buffer */ - bool pubkey /**< [in] buffer is a public key */ + struct atcac_pk_ctx* ctx, /**< [in] pointer to a pk context */ + const uint8_t * buf, /**< [in] buffer containing a pem encoded key */ + size_t buflen, /**< [in] length of the input buffer */ + bool pubkey /**< [in] buffer is a public key */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -450,6 +455,10 @@ ATCA_STATUS atcac_pk_init_pem( } status = (0 == ret) ? ATCA_SUCCESS : ATCA_FUNC_FAIL; } + if (ATCA_SUCCESS == status) + { + ctx->key_type = 0; + } } } } @@ -461,9 +470,9 @@ ATCA_STATUS atcac_pk_init_pem( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_public( - atcac_pk_ctx* ctx, - uint8_t* buf, - size_t* buflen + struct atcac_pk_ctx* ctx, + uint8_t* buf, + size_t* buflen ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -477,7 +486,7 @@ ATCA_STATUS atcac_pk_public( int ret = -1; - if (!wc_ecc_check_key((ecc_key*)ctx->ptr)) + if (0U == ctx->key_type) { word32 xlen = 32; word32 ylen = 32; @@ -495,7 +504,7 @@ ATCA_STATUS atcac_pk_public( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_free( - atcac_pk_ctx* ctx /**< [in] pointer to a pk context */ + struct atcac_pk_ctx* ctx /**< [in] pointer to a pk context */ ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -516,11 +525,11 @@ ATCA_STATUS atcac_pk_free( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_sign( - atcac_pk_ctx* ctx, - const uint8_t * digest, - size_t dig_len, - uint8_t* signature, - size_t* sig_len + struct atcac_pk_ctx* ctx, + const uint8_t * digest, + size_t dig_len, + uint8_t* signature, + size_t* sig_len ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -530,22 +539,25 @@ ATCA_STATUS atcac_pk_sign( WC_RNG rng; int ret = wc_InitRng(&rng); - if (!ret) + if (0 == ret) { - if ((0 == wc_ecc_check_key((ecc_key*)ctx->ptr)) && (ATCA_SHA256_DIGEST_SIZE == dig_len)) + if ((0 == ctx->key_type) && (ATCA_SHA256_DIGEST_SIZE == dig_len)) { uint8_t sig[72]; word32 siglen = sizeof(sig); word32 rlen = 32; word32 slen = 32; + memset(signature, 0, *sig_len); + ret = wc_ecc_sign_hash((byte*)digest, (word32)dig_len, (byte*)sig, &siglen, &rng, (ecc_key*)ctx->ptr); - if (!ret) + + if (0 == ret) { ret = wc_ecc_sig_to_rs((byte*)sig, siglen, (byte*)signature, &rlen, (byte*)&signature[32], &slen); } - if (!ret) + if (0 == ret) { *sig_len = 64; } @@ -567,11 +579,11 @@ ATCA_STATUS atcac_pk_sign( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_verify( - atcac_pk_ctx* ctx, - const uint8_t* digest, - size_t dig_len, - const uint8_t* signature, - size_t sig_len + struct atcac_pk_ctx* ctx, + const uint8_t* digest, + size_t dig_len, + const uint8_t* signature, + size_t sig_len ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -581,7 +593,7 @@ ATCA_STATUS atcac_pk_verify( { int ret = -1; int res = 0; - if (0 == wc_ecc_check_key((ecc_key*)ctx->ptr) && ATCA_ECCP256_SIG_SIZE == sig_len) + if ((0 == ctx->key_type) && (ATCA_ECCP256_SIG_SIZE == sig_len)) { uint8_t sig[72]; word32 len = sizeof(sig); @@ -618,10 +630,10 @@ ATCA_STATUS atcac_pk_verify( * \return ATCA_SUCCESS on success, otherwise an error code. */ ATCA_STATUS atcac_pk_derive( - atcac_pk_ctx* private_ctx, - atcac_pk_ctx* public_ctx, - uint8_t* buf, - size_t* buflen + struct atcac_pk_ctx* private_ctx, + struct atcac_pk_ctx* public_ctx, + uint8_t* buf, + size_t* buflen ) { ATCA_STATUS status = ATCA_BAD_PARAM; @@ -630,7 +642,7 @@ ATCA_STATUS atcac_pk_derive( { int ret = -1; - if (!wc_ecc_check_key((ecc_key*)public_ctx->ptr)) + if (0 == private_ctx->key_type) { ret = wc_ecc_shared_secret((ecc_key*)private_ctx->ptr, (ecc_key*)public_ctx->ptr, (byte*)buf, (word32*)buflen); } @@ -640,4 +652,66 @@ ATCA_STATUS atcac_pk_derive( return status; } +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) +struct atcac_sha1_ctx * atcac_sha1_ctx_new(void) +{ + return (struct atcac_sha1_ctx*)hal_malloc(sizeof(atcac_sha1_ctx_t)); +} + +struct atcac_sha2_256_ctx * atcac_sha256_ctx_new(void) +{ + return (struct atcac_sha2_256_ctx*)hal_malloc(sizeof(atcac_sha2_256_ctx_t)); +} + +struct atcac_hmac_ctx * atcac_hmac_ctx_new(void) +{ + return (struct atcac_hmac_ctx*)hal_malloc(sizeof(atcac_hmac_ctx_t)); +} + +struct atcac_aes_gcm_ctx * atcac_aes_gcm_ctx_new(void) +{ + return (struct atcac_aes_gcm_ctx*)hal_malloc(sizeof(atcac_aes_gcm_ctx_t)); +} + +struct atcac_aes_cmac_ctx * atcac_aes_cmac_ctx_new(void) +{ + return (struct atcac_aes_cmac_ctx*)hal_malloc(sizeof(atcac_aes_cmac_ctx_t)); +} + +struct atcac_pk_ctx * atcac_pk_ctx_new(void) +{ + return (struct atcac_pk_ctx*)hal_malloc(sizeof(atcac_pk_ctx_t)); +} + +void atcac_sha1_ctx_free(struct atcac_sha1_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_sha256_ctx_free(struct atcac_sha2_256_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_hmac_ctx_free(struct atcac_hmac_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_aes_gcm_ctx_free(struct atcac_aes_gcm_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_aes_cmac_ctx_free(struct atcac_aes_cmac_ctx * ctx) +{ + hal_free(ctx); +} + +void atcac_pk_ctx_free(struct atcac_pk_ctx * ctx) +{ + hal_free(ctx); +} +#endif + #endif /* ATCA_WOLFSSL */ diff --git a/lib/wolfssl/atca_wolfssl_interface.h b/lib/wolfssl/atca_wolfssl_interface.h new file mode 100644 index 000000000..8b4d61a67 --- /dev/null +++ b/lib/wolfssl/atca_wolfssl_interface.h @@ -0,0 +1,106 @@ +/** + * \file + * \brief Configuration Check for WolfSSL Integration Support + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef ATCA_WOLFSSL_CHECK_H +#define ATCA_WOLFSSL_CHECK_H + +#include "atca_config_check.h" + +#ifdef ATCA_WOLFSSL + +#if !defined(ATCA_BUILD_SHARED_LIBS) && defined(ATCA_NO_HEAP) +#include "atca_wolfssl_internal.h" +#endif + +/** \def ATCAC_SHA1_EN + * Indicates if this module is a provider of a SHA1 implementation + */ +#ifndef ATCAC_SHA1_EN +#if defined(WOLF_CRYPT_SETTINGS_H) && defined(NO_SHA) +#define ATCAC_SHA1_EN (DEFAULT_DISABLED) +#else +#define ATCAC_SHA1_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_SHA1_EN */ + +/** \def ATCAC_SHA256_EN + * Indicates if this module is a provider of a SHA256 implementation + */ +#ifndef ATCAC_SHA256_EN +#if defined(WOLF_CRYPT_SETTINGS_H) && defined(NO_SHA256) +#define ATCAC_SHA256_EN (DEFAULT_DISABLED) +#else +#define ATCAC_SHA256_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_SHA256_EN */ + +/** \def ATCAC_AES_CMAC_EN + * Indicates if this module is a provider of an AES-CMAC implementation + */ +#ifndef ATCAC_AES_CMAC_EN +#if defined(WOLF_CRYPT_SETTINGS_H) && !defined(WOLFSSL_CMAC) +#define ATCAC_AES_CMAC_EN (DEFAULT_DISABLED) +#else +#define ATCAC_AES_CMAC_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_AES_CMAC_EN */ + +/** \def ATCAC_AES_GCM_EN + * Indicates if this module is a provider of an AES-GCM implementation + */ +#ifndef ATCAC_AES_GCM_EN +#if defined(WOLF_CRYPT_SETTINGS_H) && !defined(HAVE_AESGCM) +#define ATCAC_AES_GCM_EN (DEFAULT_DISABLED) +#else +#define ATCAC_AES_GCM_EN (DEFAULT_ENABLED) +#endif +#endif /* ATCAC_AES_GCM_EN */ + +/** \def ATCAC_AES_GCM_UPDATE_EN + * Indicates if this module is a provider of an AES-GCM Update implementation + */ +#ifndef ATCAC_AES_GCM_UPDATE_EN +#define ATCAC_AES_GCM_UPDATE_EN (DEFAULT_DISABLED) +#endif + +/** \def ATCAC_PKEY_EN + * Indicates if this module is a provider of a generic asymmetric cryptography + * implementation */ +#ifndef ATCAC_PKEY_EN +#define ATCAC_PKEY_EN (DEFAULT_ENABLED) +#endif + +/** \def HOSTLIB_CERT_EN + * Indicates if this module is a provider of x509 certificate handling + */ +#ifndef HOSTLIB_CERT_EN +#define HOSTLIB_CERT_EN (DEFAULT_DISABLED) +#endif + +#endif /* ATCA_WOLFSSL */ + +#endif /* ATCA_WOLFSSL_CHECK_H */ diff --git a/lib/wolfssl/atca_wolfssl_internal.h b/lib/wolfssl/atca_wolfssl_internal.h new file mode 100644 index 000000000..cc3f35e73 --- /dev/null +++ b/lib/wolfssl/atca_wolfssl_internal.h @@ -0,0 +1,120 @@ +/** + * \file + * \brief WolfSSL Integration Support + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef ATCA_WOLFSSL_INTERFACE_H +#define ATCA_WOLFSSL_INTERFACE_H + +#ifdef ATCA_WOLFSSL + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __COVERITY__ +#pragma coverity compliance block(include) \ + (fp "CERT DCL37-C" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Directive 4.10" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 3.1" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 7.3" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 8.2" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 20.13" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 21.1" "Ignoring violations from third party libraries") \ + (fp "MISRA C-2012 Rule 21.2" "Ignoring violations from third party libraries") +#endif + +#include "wolfssl/wolfcrypt/types.h" +#ifndef WOLFSSL_CMAC +#define WOLFSSL_CMAC +#endif +#ifndef HAVE_AESGCM +#define HAVE_AESGCM +#endif +#include "wolfssl/wolfcrypt/aes.h" +#include "wolfssl/wolfcrypt/cmac.h" +#include "wolfssl/wolfcrypt/hmac.h" +#include "wolfssl/wolfcrypt/sha.h" +#include "wolfssl/wolfcrypt/sha256.h" +#include "wolfssl/wolfcrypt/error-crypt.h" +#include "wolfssl/wolfcrypt/asn_public.h" +#include "wolfssl/wolfcrypt/asn.h" +#include "wolfssl/wolfcrypt/random.h" + +typedef struct atcac_aes_gcm_ctx +{ + Aes aes; + uint8_t iv[AES_BLOCK_SIZE]; + uint16_t iv_len; +} atcac_aes_gcm_ctx_t; + +typedef struct atcac_sha1_ctx +{ + wc_Sha sha; +} atcac_sha1_ctx_t; + +typedef struct atcac_sha2_256_ctx +{ + wc_Sha256 sha; +} atcac_sha2_256_ctx_t; + +typedef struct atcac_aes_cmac_ctx +{ + Cmac cmac; +} atcac_aes_cmac_ctx_t; + +typedef struct atcac_hmac_ctx +{ + Hmac hmac; +} atcac_hmac_ctx_t; + +typedef struct atcac_pk_ctx +{ + void* ptr; + uint8_t key_type; +} atcac_pk_ctx_t; + +/* Some configurations end up with a circular definition the above have to be defined before include ecc.h (since ecc.h can call cryptoauthlib functions) */ +#include "wolfssl/wolfcrypt/ecc.h" + +#ifdef __COVERITY__ +#pragma coverity compliance end_block(include) \ + "CERT DCL37-C" \ + "MISRA C-2012 Directive 4.10" \ + "MISRA C-2012 Rule 3.1" \ + "MISRA C-2012 Rule 7.3" \ + "MISRA C-2012 Rule 8.2" \ + "MISRA C-2012 Rule 20.13" \ + "MISRA C-2012 Rule 21.1" \ + "MISRA C-2012 Rule 21.2" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ATCA_WOLFSSL */ + +#endif /* ATCA_WOLFSSL_INTERFACE_H */ diff --git a/module.xml b/module.xml index cdb2e3464..b42bf607b 100644 --- a/module.xml +++ b/module.xml @@ -1,4 +1,4 @@ - + diff --git a/python/cryptoauthlib/cryptoauth.json b/python/cryptoauthlib/cryptoauth.json index fec496477..73bba9f0d 100644 --- a/python/cryptoauthlib/cryptoauth.json +++ b/python/cryptoauthlib/cryptoauth.json @@ -472,12 +472,10 @@ "restype": "ctypes.c_uint8", "argtypes": [ "ctypes.c_void_p", - "ctypes.c_uint16", - "ctypes.c_uint16", - "ctypes.c_char*16", - "ctypes.c_char*16" + "ctypes.c_void_p", + "ctypes.c_void_p" ], - "docstring": "TA API - Calculate the session key for the authenticated session. ", + "docstring": null, "parameters": [] }, "talib_auth_create_hmac": { @@ -500,7 +498,7 @@ "ctypes.c_uint16", "ctypes.c_char*16" ], - "docstring": "TA API - Exchange nonces between host and device. ", + "docstring": null, "parameters": [] }, "talib_auth_startup": { @@ -510,22 +508,20 @@ "ctypes.c_uint16", "ctypes.c_uint8", "ctypes.c_uint16", - "ctypes.c_uint8", - "ctypes.c_char*32", + "ctypes.c_void_p", "ctypes.c_char*16", "ctypes.c_char*16" ], - "docstring": "TA API - Initiate an authorization session. ", + "docstring": null, "parameters": [] }, "talib_auth_execute_nested": { "restype": "ctypes.c_uint8", "argtypes": [ "ctypes.c_void_p", - "ctypes.c_void_p", - "ctypes.c_uint16" + "ctypes.c_void_p" ], - "docstring": "TA API - Executes a nested command. ", + "docstring": null, "parameters": [] }, "talib_auth_terminate": { @@ -533,7 +529,7 @@ "argtypes": [ "ctypes.c_void_p" ], - "docstring": "TA API - Terminate an authorization session. ", + "docstring": null, "parameters": [] }, "talib_counter": { @@ -655,7 +651,7 @@ "ctypes.POINTER(ta_element_attributes_t)", "ctypes.POINTER(ctypes.c_uint16)" ], - "docstring": "TA API - Executes Create command to create elements on TA100 shared data memory. The handle is created by vega and handle value is copied into output buffer. This function wont create handle for ephemeral or HMAC symmetric key. This cannot create Secure_boot special handles. ", + "docstring": "TA API - Executes Create command to create elements on TA100 shared data memory. The handle is created by internally and handle value is copied into output buffer. This function wont create handle for ephemeral or HMAC symmetric key. This cannot create Secure_boot special handles. ", "parameters": [ [ "device", @@ -730,7 +726,7 @@ "ctypes.POINTER(ta_element_attributes_t)", "ctypes.POINTER(ctypes.c_uint16)" ], - "docstring": "TA API - Executes Create command to create HMAC symmetric elements on shared data. The handle is created by vega and handle value is copied into output buffer. This cannot create Secure_boot special handles. ", + "docstring": "TA API - Executes Create command to create HMAC symmetric elements on shared data. The handle is created by the device and handle value is copied into output buffer. This cannot create Secure_boot special handles. ", "parameters": [ [ "device", @@ -746,7 +742,7 @@ ], [ "handle_out", - "handle created by vega" + "handle created by the device" ] ] }, @@ -868,7 +864,7 @@ "ctypes.c_char_p", "ctypes.c_uint16" ], - "docstring": "TA API - Executes devupdate command to Update one block of the nonvolatile operating code within the Vega device. ", + "docstring": "TA API - Executes devupdate command to Update one block of the nonvolatile operating code within the trust anchor device. ", "parameters": [ [ "device", @@ -893,7 +889,7 @@ "argtypes": [ "ctypes.c_void_p", "ctypes.c_uint16", - "ctypes.c_int16" + "ctypes.c_uint16" ], "docstring": "TA API - Initialize the Devupdate context stucture. ", "parameters": [ @@ -918,7 +914,7 @@ "ctypes.c_void_p", "ctypes.c_char_p" ], - "docstring": "TA API - Executes devupdate command to Update the first block (image) of the nonvolatile operating code within the Vega device. ", + "docstring": "TA API - Executes devupdate command to Update the first block (image) of the nonvolatile operating code within the trust anchor device. ", "parameters": [ [ "device", @@ -942,7 +938,7 @@ "ctypes.c_char_p", "ctypes.POINTER(ctypes.c_uint16)" ], - "docstring": "TA API - Executes devupdate command to Update the subsequent block (image) of the nonvolatile operating code within the Vega device. ", + "docstring": "TA API - Executes devupdate command to Update the subsequent block (image) of the nonvolatile operating code within the trust anchor device. ", "parameters": [ [ "device", @@ -968,7 +964,7 @@ "ctypes.c_void_p", "ctypes.c_char_p" ], - "docstring": "TA API - Executes devupdate command to Update the complete image of the nonvolatile operating code within the Vega device. ", + "docstring": "TA API - Executes devupdate command to Update the complete image of the nonvolatile operating code within the trust anchor device. ", "parameters": [ [ "image", @@ -1475,7 +1471,7 @@ "argtypes": [ "ctypes.c_void_p", "ctypes.c_uint32", - "ctypes.c_char*(9)" + "ctypes.POINTER(ta_handle_info)" ], "docstring": "TA API - Issues an Info command to return attributes & status of a handle. ", "parameters": [ @@ -2967,27 +2963,21 @@ ] ] }, - "talib_manage_cert": { + "talib_cert_extract": { "restype": "ctypes.c_uint8", "argtypes": [ "ctypes.c_void_p", - "ctypes.c_uint8", "ctypes.c_uint16", "ctypes.c_uint16", "ctypes.c_uint16", - "ctypes.c_char_p", - "ctypes.c_uint16" + "ctypes.c_void_p" ], - "docstring": "TA API - Executes ManageCert command to parse and verify x.509 certs or manage an input certificate revocation list. ", + "docstring": "TA API - Executes manage_cert api to extract x.509 certs from IO buffer or shared memory and store extracted certificate to shared element. ", "parameters": [ [ "device", "Device object that holds the device related informations " ], - [ - "mode", - "mode parameter for ManageCert command " - ], [ "parent_handle", "Verifying certificate handle. This can be in Shared or Volatile " @@ -3001,57 +2991,20 @@ "Handle pointing to Full certificate or CRL. Only supports IO buffer or shared memory, but not Volatile register. CRL must point to IO buffer. " ], [ - "in_cert", - "Incoming certificate or CRL when source handle pointing to IO buffer. Maximum size is 1020. Should be NULL if source_handle points to internal memory " - ], - [ - "length", - "Length of the incoming certificate or CRL. Applicable only when in_cert exists on the IO buffer" - ] - ] - }, - "talib_store_extracted_cert_io": { - "restype": "ctypes.c_uint8", - "argtypes": [ - "ctypes.c_void_p", - "ctypes.c_uint16", - "ctypes.c_uint16", - "ctypes.c_char_p", - "ctypes.c_uint16" - ], - "docstring": "TA API - Executes ManageCert command to verify x.509 incoming cert and store extracted certificate to shared element. ", - "parameters": [ - [ - "device", - "Device object that holds the device related informations " - ], - [ - "parent_handle", - "Verifying certificate handle. This can be in Shared or Volatile " - ], - [ - "target_handle", - "Handle to write verified certificate. After successful verification, extracted elements are written to this handle. " - ], - [ - "in_cert", - "Incoming certificate to verify and extract " - ], - [ - "cert_length", - "Length of the incoming certificate" + "cert", + "Incoming buffer containing certificate or CRL when source handle pointing to IO buffer. Maximum size is 1020. If the certificate buffer is present then it will take priority over the source_handle parameter. Should be NULL if source_handle points to internal memory " ] ] }, - "talib_store_extracted_cert": { + "talib_cert_verify": { "restype": "ctypes.c_uint8", "argtypes": [ "ctypes.c_void_p", "ctypes.c_uint16", "ctypes.c_uint16", - "ctypes.c_uint16" + "ctypes.c_void_p" ], - "docstring": "TA API - Executes ManageCert command to verify x.509 stored cert and store extracted certificate to shared element. ", + "docstring": "TA API - Executes manage_cert api to verify x.509 incoming cert and returns verification status. ", "parameters": [ [ "device", @@ -3063,62 +3016,15 @@ ], [ "target_handle", - "Handle to write verified certificate. After successful verification, extracted elements are written to this handle. " + "Handle to write verified certificate or CRL element. After successful verification, extracted element is written to this handle. A value of 0xFFFF, skips write to handle but returns verification status " ], [ "source_handle", - "Handle pointing to Full certificate only supports shared memory" - ] - ] - }, - "talib_verify_cert_io": { - "restype": "ctypes.c_uint8", - "argtypes": [ - "ctypes.c_void_p", - "ctypes.c_uint16", - "ctypes.c_char_p", - "ctypes.c_uint16" - ], - "docstring": "TA API - Executes ManageCert command to verify x.509 incoming cert and returns verification status. ", - "parameters": [ - [ - "device", - "Device object that holds the device related informations " - ], - [ - "parent_handle", - "Verifying certificate handle. This can be in Shared or Volatile " - ], - [ - "in_cert", - "Incoming certificate to verify and extract " - ], - [ - "cert_length", - "Length of the incoming certificate" - ] - ] - }, - "talib_verify_cert": { - "restype": "ctypes.c_uint8", - "argtypes": [ - "ctypes.c_void_p", - "ctypes.c_uint16", - "ctypes.c_uint16" - ], - "docstring": "TA API - Executes ManageCert command to verify x.509 stored cert and returns verification status. ", - "parameters": [ - [ - "device", - "Device object that holds the device related informations " - ], - [ - "parent_handle", - "Verifying certificate handle. This can be in Shared or Volatile " + "Handle pointing to Full certificate or CRL. Only supports IO buffer or shared memory, but not Volatile register. CRL must point to IO buffer. " ], [ - "source_handle", - "Handle pointing to Full certificate only supports shared memory" + "cert", + "Incoming buffer containing certificate or CRL when source handle pointing to IO buffer. Maximum size is 1020. If the certificate buffer is present then it will take priority over the source_handle parameter. Should be NULL if source_handle points to internal memory " ] ] }, @@ -3170,29 +3076,11 @@ "restype": "ctypes.c_uint8", "argtypes": [ "ctypes.c_void_p", - "ctypes.c_char*16", - "ctypes.c_char_p", - "ctypes.c_uint32" + "ctypes.c_void_p", + "ctypes.c_void_p" ], - "docstring": "TA API - Executes Random command and returns requested number of random bytes. ", - "parameters": [ - [ - "device", - "Device context pointer " - ], - [ - "stir_data", - "Extra data to be stirred into the random number calculation. Should be 16 bytes " - ], - [ - "rand_out", - "Requested number of random bytes are returned here " - ], - [ - "rand_length", - "Contains number of random bytes to read" - ] - ] + "docstring": null, + "parameters": [] }, "talib_random_compat": { "restype": "ctypes.c_uint8", @@ -3200,17 +3088,8 @@ "ctypes.c_void_p", "ctypes.c_char*32" ], - "docstring": "Compatibility mode which generates a 32 byte random number from the TA100 device. ", - "parameters": [ - [ - "device", - "Device context pointer " - ], - [ - "rand_out", - "32 bytes of random data is returned here." - ] - ] + "docstring": null, + "parameters": [] }, "talib_read": { "restype": "ctypes.c_uint8", @@ -3454,7 +3333,7 @@ "ctypes.c_char_p", "ctypes.c_char_p" ], - "docstring": "Executes Read command to transfer key to another vega device. ", + "docstring": "Executes Read command to transfer key to another trust anchor device. ", "parameters": [ [ "device", @@ -3944,7 +3823,7 @@ "ctypes.c_char_p", "ctypes.c_size_t" ], - "docstring": "TA API - Execute Secureboot command in partial config mode to update the code Pass a full SHA256 (64 byte) block of code to the Vega device as part of the overall code load/upgrade procedure. This phase is run repeatedly till the final full or partial block has been sent. ", + "docstring": "TA API - Execute Secureboot command in partial config mode to update the code Pass a full SHA256 (64 byte) block of code to the trust anchor device as part of the overall code load/upgrade procedure. This phase is run repeatedly till the final full or partial block has been sent. ", "parameters": [ [ "device", @@ -3970,7 +3849,7 @@ "ctypes.c_void_p", "ctypes.c_char_p" ], - "docstring": "TA API - Execute Secureboot command in partial config mode to update the initial code Pass a full SHA256 (64 byte) block of code to the Vega device as part of the overall code load/upgrade procedure. This phase is run repeatedly till before the final full or partial block has been sent. ", + "docstring": "TA API - Execute Secureboot command in partial config mode to update the initial code Pass a full SHA256 (64 byte) block of code to the trust anchor device as part of the overall code load/upgrade procedure. This phase is run repeatedly till before the final full or partial block has been sent. ", "parameters": [ [ "device", @@ -4045,7 +3924,7 @@ "ctypes.POINTER(ctypes.c_uint32)", "ctypes.POINTER(ctypes.c_uint32)" ], - "docstring": "TA API - Execute secureboot command in partial config mode of address phase This pahse retrieve address min/max bounds from the Vega device. ", + "docstring": "TA API - Execute secureboot command in partial config mode of address phase This phase retrieve address min/max bounds from the trust anchor device. ", "parameters": [ [ "device", @@ -4766,7 +4645,7 @@ "ctypes.c_uint16", "ctypes.POINTER(ctypes.c_bool)" ], - "docstring": "TA API - Executes the Verify command, to Verify a signature using given the message and a public key. The message and public key can either be stored within Vega or passed on the command line. ", + "docstring": "TA API - Executes the Verify command, to Verify a signature using given the message and a public key. The message and public key can either be stored within trust anchor device or passed on the command line. ", "parameters": [ [ "device", @@ -5739,7 +5618,8 @@ "talib_sharekey_sequence_execute": { "restype": "ctypes.c_uint8", "argtypes": [ - "ctypes.c_void_p" + "ctypes.c_void_p", + "ctypes.c_char_p" ], "docstring": "TA API - To execute share key sequence steps. ", "parameters": [ @@ -5761,5 +5641,437 @@ "Share key sequence object that holds the share key related informations" ] ] + }, + "atcab_get_device_address": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p" + ], + "docstring": "Get the current device address based on the configured device and interface. ", + "parameters": [] + }, + "talib_get_max_data_size": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.POINTER(ctypes.c_size_t)" + ], + "docstring": "Gets the maximum length of data that can be written into the packet for the given session. ", + "parameters": [ + [ + "device", + "Device context pointer " + ], + [ + "size", + "Max data size allowed in the current session" + ] + ] + }, + "talib_auth_reset_on_device": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint16" + ], + "docstring": null, + "parameters": [] + }, + "talib_auth_reset_on_host": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_is_private": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint16", + "ctypes.POINTER(ctypes.c_bool)" + ], + "docstring": "Check if a slot is a private key. ", + "parameters": [ + [ + "device", + "Device context pointer " + ], + [ + "handle", + "Handle to query " + ], + [ + "is_private", + "return true if private" + ] + ] + }, + "talib_random_internal": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.POINTER(ctypes.c_size_t)" + ], + "docstring": null, + "parameters": [] + }, + "talib_handle_can_use": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint16", + "ctypes.POINTER(ta_element_attributes_t)", + "ctypes.POINTER(ctypes.c_bool)" + ], + "docstring": null, + "parameters": [] + }, + "talib_handle_can_read": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint16", + "ctypes.POINTER(ta_element_attributes_t)", + "ctypes.POINTER(ctypes.c_bool)" + ], + "docstring": null, + "parameters": [] + }, + "talib_handle_can_write": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint16", + "ctypes.POINTER(ta_element_attributes_t)", + "ctypes.POINTER(ctypes.c_bool)" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_init": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint8", + "ctypes.c_uint32", + "ctypes.POINTER(ctypes.c_uint32)" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_execute": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_sha_start": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_sha_update": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_char_p", + "ctypes.c_size_t", + "ctypes.c_bool" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_sha_finish": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_char_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_sha": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_char_p", + "ctypes.c_size_t", + "ctypes.c_char_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_hmac_start": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint8", + "ctypes.c_uint16", + "ctypes.c_uint8", + "ctypes.POINTER(ctypes.c_uint32)" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_hmac_update": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_char_p", + "ctypes.c_size_t", + "ctypes.c_bool" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_hmac_finish": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_char_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_hmac": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint8", + "ctypes.c_uint16", + "ctypes.c_uint8", + "ctypes.POINTER(ctypes.c_uint32)", + "ctypes.c_char_p", + "ctypes.c_size_t", + "ctypes.c_char_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_cmac_start": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint8", + "ctypes.c_uint16", + "ctypes.c_uint8", + "ctypes.POINTER(ctypes.c_uint32)" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_cmac_update": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_char_p", + "ctypes.c_size_t", + "ctypes.c_bool" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_cmac_finish": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_char_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_fce_cmac": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint8", + "ctypes.c_uint16", + "ctypes.c_uint8", + "ctypes.POINTER(ctypes.c_uint32)", + "ctypes.c_char_p", + "ctypes.c_size_t", + "ctypes.c_char_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_auth_get_context": { + "restype": "ctypes.c_void_p", + "argtypes": [ + "ctypes.c_void_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_auth_get_max_data_size": { + "restype": "ctypes.c_size_t", + "argtypes": [ + "ctypes.c_void_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_auth_verify_mac": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_char_p", + "ctypes.c_char_p", + "ctypes.c_size_t" + ], + "docstring": null, + "parameters": [] + }, + "talib_auth_packet_init": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.POINTER(ctypes.c_void_p)", + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_bool" + ], + "docstring": null, + "parameters": [] + }, + "talib_kdf_init": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.POINTER(ctypes.c_void_p)", + "ctypes.c_uint8", + "ctypes.c_uint16", + "ctypes.c_uint16" + ], + "docstring": null, + "parameters": [] + }, + "talib_kdf_execute": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_void_p" + ], + "docstring": null, + "parameters": [] + }, + "talib_kdf_sha_format": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_uint16" + ], + "docstring": null, + "parameters": [] + }, + "talib_kdf_hmac_format": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_uint16" + ], + "docstring": null, + "parameters": [] + }, + "talib_kdf_hkdf_format": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_uint16" + ], + "docstring": null, + "parameters": [] + }, + "talib_kdf_prf_format": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_uint16" + ], + "docstring": null, + "parameters": [] + }, + "talib_cert_extract_internal": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint16", + "ctypes.c_uint16", + "ctypes.c_uint16", + "ctypes.c_void_p", + "ctypes.POINTER(ctypes.c_size_t)" + ], + "docstring": "TA API - Executes ManageCert command to parse and verify x.509 certs or manage an input certificate revocation list. ", + "parameters": [ + [ + "device", + "Device object that holds the device related informations " + ], + [ + "parent_handle", + "Verifying certificate handle. This can be in Shared or Volatile " + ], + [ + "target_handle", + "Handle to write verified certificate or CRL element. After successful verification, extracted element is written to this handle. A value of 0xFFFF, skips write to handle but returns verification status " + ], + [ + "source_handle", + "Handle pointing to Full certificate or CRL. Only supports IO buffer or shared memory, but not Volatile register. CRL must point to IO buffer. " + ], + [ + "cert", + "Incoming buffer containing certificate or CRL when source handle pointing to IO buffer. Maximum size is 1020. If the certificate buffer is present then it will take priority over the source_handle parameter. Should be NULL if source_handle points to internal memory " + ] + ] + }, + "talib_read_init": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.POINTER(ctypes.c_void_p)", + "ctypes.c_uint8", + "ctypes.c_uint16", + "ctypes.c_uint16" + ], + "docstring": null, + "parameters": [] + }, + "talib_read_execute": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.c_void_p", + "ctypes.POINTER(ctypes.c_size_t)" + ], + "docstring": null, + "parameters": [] + }, + "talib_read_partial_internal": { + "restype": "ctypes.c_uint8", + "argtypes": [ + "ctypes.c_void_p", + "ctypes.c_uint16", + "ctypes.POINTER(ctypes.c_size_t)", + "ctypes.c_void_p", + "ctypes.c_bool" + ], + "docstring": null, + "parameters": [] } -} +} \ No newline at end of file diff --git a/python/setup.py b/python/setup.py index 46e2e722d..48a129a1a 100644 --- a/python/setup.py +++ b/python/setup.py @@ -71,7 +71,7 @@ try: _VERSION = open('VERSION', 'r').read().strip() except FileNotFoundError: - with open('lib/atca_version.h', 'r') as f: + with open('lib/atca_version.h' if _sdist_build else '../lib/atca_version.h', 'r') as f: m = re.search(r'ATCA_LIBRARY_VERSION_DATE\s+\"([0-9]+)\"', f.read(), re.M) _VERSION = m.groups()[0] @@ -132,18 +132,18 @@ def build_extension(self, ext): else: build_args = [] - cmake_args = ['-DATCA_HAL_CUSTOM=ON', '-DATCA_HAL_KIT_UART=ON', + cmake_args = ['-DATCA_HAL_KIT_BRIDGE=ON', '-DATCA_HAL_KIT_UART=ON', '-DATCA_ATSHA206A_SUPPORT=ON', '-DATCA_TNGTLS_SUPPORT=ON', '-DATCA_TFLEX_SUPPORT=ON', '-DATCA_TNGLORA_SUPPORT=ON', '-DATCA_TNG_LEGACY_SUPPORT=ON', '-DATCA_USE_ATCAB_FUNCTIONS=ON'] - + if os.path.exists('../lib/talib' if not _sdist_build else 'lib/talib'): cmake_args += ['-DATCA_TA100_SUPPORT=ON'] if sys.platform.startswith('linux'): cmake_args += ['-DATCA_OPENSSL=ON'] else: - cmake_args += ['-DATCA_TA100_AES_AUTH_SUPPORT=OFF'] + cmake_args += ['-DTALIB_AES_AUTH_SUPPORT=OFF'] if not nousb: cmake_args += ['-DATCA_HAL_KIT_HID=ON'] diff --git a/python/tox.ini b/python/tox.ini index a2aa94f2c..431dfe2b0 100644 --- a/python/tox.ini +++ b/python/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = pylint,py38,py39,py310 +envlist = pylint,py38,py39,py310,py311 skipsdist = True [testenv:pylint] diff --git a/release_notes.md b/release_notes.md index 27a993daf..da81ac5b7 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,9 +1,30 @@ # Microchip Cryptoauthlib Release Notes +## Release v3.7.0 (09/08/2023) + +### New Features + - Added unified buffer implementation to enable multipart buffer use with APIs that + support them. + - See [talib/CHANGES.md] for details on talib module changes + +### Fixes + - Made `atcac` structures referencing third party libraries opaque to the user so + installed header files are usable by applications without also including the third + party headers. + +### API Changes + - The software crypto structures are generally no longer typedef'd so they must be + declared with the `struct` keyword. New typedefs were added by appending the + suffix `_t` which allows for the same mechanism for declaring these structure in code + if building a standalone application (such as in embedded projects). If dynamically + linking with the library and using a third party crypto library one will need to use + the `_new` & `_free` APIs to allocate these structures for use with the `atcac` + interfaces. + ## Release v3.6.1 (07/14/2023) -### New +### New Features - Added support for PIC18 memory model with a MAX_PACKET_SIZE setting. - PKCS11 Improvement to support context reservation automatically for operations that span multiple pkcs11 calls such as login/logout, encrypt/decrypt, etc. This prevents @@ -20,7 +41,7 @@ ## Release v3.6.0 (04/04/2023) -### New +### New Features - Compliance certified to CERT-C Level 2 & MISRA 2012. Compliance reports can be requested from your FAE or account manager - Added talib_handle helper functions to determine if a handle access type is allowed @@ -43,17 +64,17 @@ ## Release v3.5.1 (03/26/2023) -### New +### New Features - Add support for SHA104, SHA105, & SHA106 ## Release v3.5.0 (03/14/2023) -### New +### New Features - Add support for ECC204, TA010 and framework for future devices ## Release v3.4.3 (12/23/2022) -### New +### New Features - Add key load mode flags for FCE config command ### Fixes diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 688f5e7f1..b80a1ca70 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -50,6 +50,9 @@ endif() add_executable(cryptoauth_test ${CRYPTOAUTH_TEST_SRC} ${UNITY_SRC}) include_directories(cryptoauth_test ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/downloaded + ${CMAKE_BINARY_DIR}/downloaded/wolfssl + ${CMAKE_BINARY_DIR}/downloaded/mbedtls/include ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/api_atcab ${CMAKE_CURRENT_SOURCE_DIR}/api_calib @@ -96,46 +99,21 @@ endif(ATCA_TEST_DELETE_ENABLE) set_property(TARGET cryptoauth_test PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "$(OutputPath)") add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/sha-byte-test-vectors/SHA1ShortMsg.rsp - $/sha-byte-test-vectors/SHA1ShortMsg.rsp ) + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/vectors/sha-byte-test-vectors + $/sha-byte-test-vectors ) add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/sha-byte-test-vectors/SHA1LongMsg.rsp - $/sha-byte-test-vectors/SHA1LongMsg.rsp ) + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/vectors/aes_cmac_vectors + $/aes_cmac_vectors ) add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/sha-byte-test-vectors/SHA1Monte.rsp - $/sha-byte-test-vectors/SHA1Monte.rsp ) + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/vectors/aes_gcm_cavp_vectors + $/aes_gcm_cavp_vectors ) add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/sha-byte-test-vectors/SHA256ShortMsg.rsp - $/sha-byte-test-vectors/SHA256ShortMsg.rsp ) - -add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/sha-byte-test-vectors/SHA256LongMsg.rsp - $/sha-byte-test-vectors/SHA256LongMsg.rsp ) - -add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/sha-byte-test-vectors/SHA256Monte.rsp - $/sha-byte-test-vectors/SHA256Monte.rsp ) - -add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/aes_gcm_cavp_vectors/gcmEncryptExtIV128.req - $/aes_gcm_cavp_vectors/gcmEncryptExtIV128.req ) - -add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/aes_gcm_cavp_vectors/gcmDecrypt128.req - $/aes_gcm_cavp_vectors/gcmDecrypt128.req ) - -add_custom_command(TARGET cryptoauth_test POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/vectors/hmac_test_vectors/HMAC_sha256.rsp - $/hmac_test_vectors/HMAC_sha256.rsp ) + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/vectors/hmac_test_vectors + $/hmac_test_vectors ) diff --git a/test/README.md b/test/README.md index d0933fa0d..70f62e3f2 100644 --- a/test/README.md +++ b/test/README.md @@ -122,9 +122,9 @@ Commands Options ------------------------------------------------------------------------------- -### -i (Device) +### -d (Device) -Usage: `-i ` +Usage: `-d ` Selects the device type - per the device list that you would otherwise see when invoking `help` from the menu. Possible options if the corresponding `ATCA__SUPPORT` diff --git a/test/api_atcab/atca_tests_aes_gcm.c b/test/api_atcab/atca_tests_aes_gcm.c index fee0ba692..2e05b5667 100644 --- a/test/api_atcab/atca_tests_aes_gcm.c +++ b/test/api_atcab/atca_tests_aes_gcm.c @@ -25,7 +25,7 @@ * THIS SOFTWARE. */ #include -#ifdef _WIN32 +#if defined(_WIN32) || defined(__linux__) #include #endif #include "test_atcab.h" @@ -306,6 +306,11 @@ TEST(atca_cmd_basic_test, aes_gcm_nist_vectors) for (test_index = 0; test_index < GCM_TEST_VECTORS_COUNT; test_index++) { + if (test_index == 13) + { + continue; + } + // Load AES keys into TempKey status = atcab_nonce_load(NONCE_MODE_TARGET_TEMPKEY, gcm_test_cases[test_index].key, 32); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); @@ -421,11 +426,9 @@ TEST(atca_cmd_basic_test, aes_gcm_nist_vectors) } } +#if defined(_WIN32) || defined(__linux__) TEST(atca_cmd_basic_test, aes_gcm_encrypt_cavp_vectors) { -#ifndef _WIN32 - TEST_IGNORE_MESSAGE("Test only available under windows."); -#else ATCA_STATUS status; FILE* req_file = NULL; FILE* rsp_file = NULL; @@ -459,6 +462,14 @@ TEST(atca_cmd_basic_test, aes_gcm_encrypt_cavp_vectors) { continue; } + else + { + size_t ln = strlen(line); + if (ln > 0 && line[ln - 2] == '\r') + { + line[ln - 1] = 0; + } + } fputs(str, rsp_file); if (!memcmp(str, "Key = ", strlen("Key = "))) @@ -533,14 +544,10 @@ TEST(atca_cmd_basic_test, aes_gcm_encrypt_cavp_vectors) #ifdef ATCA_PRINTF printf("\n"); #endif -#endif } TEST(atca_cmd_basic_test, aes_gcm_decrypt_cavp_vectors) { -#ifndef _WIN32 - TEST_IGNORE_MESSAGE("Test only available under windows."); -#else ATCA_STATUS status; FILE* req_file = NULL; FILE* rsp_file = NULL; @@ -574,6 +581,14 @@ TEST(atca_cmd_basic_test, aes_gcm_decrypt_cavp_vectors) { continue; } + else + { + size_t ln = strlen(line); + if (ln > 0 && line[ln - 2] == '\r') + { + line[ln - 1] = 0; + } + } fputs(str, rsp_file); if (!memcmp(str, "Key = ", strlen("Key = "))) @@ -652,8 +667,8 @@ TEST(atca_cmd_basic_test, aes_gcm_decrypt_cavp_vectors) #ifdef ATCA_PRINTF printf("\n"); #endif -#endif } +#endif // *INDENT-OFF* - Preserve formatting t_test_case_info aes_gcm_basic_test_info[] = @@ -661,8 +676,10 @@ t_test_case_info aes_gcm_basic_test_info[] = { REGISTER_TEST_CASE(atca_cmd_basic_test, aes_gcm_nist_vectors), atca_test_cond_ecc608 }, { REGISTER_TEST_CASE(atca_cmd_basic_test, aes_gcm_encrypt_partial_blocks), atca_test_cond_ecc608 }, { REGISTER_TEST_CASE(atca_cmd_basic_test, aes_gcm_decrypt_partial_blocks), atca_test_cond_ecc608 }, +#if defined(_WIN32) || defined(__linux__) { REGISTER_TEST_CASE(atca_cmd_basic_test, aes_gcm_encrypt_cavp_vectors), atca_test_cond_ecc608 }, { REGISTER_TEST_CASE(atca_cmd_basic_test, aes_gcm_decrypt_cavp_vectors), atca_test_cond_ecc608 }, +#endif { (fp_test_case)NULL, NULL }, /* Array Termination element*/ }; diff --git a/test/api_atcab/atca_tests_buffer.c b/test/api_atcab/atca_tests_buffer.c new file mode 100644 index 000000000..876985b8b --- /dev/null +++ b/test/api_atcab/atca_tests_buffer.c @@ -0,0 +1,765 @@ +/** + * \file + * \brief Unit Tests for buffer handling utilities + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#include "test_atcab.h" +#include "cal_buffer.h" + +#define BUF_INIT_VAL (0x5AU) +static uint8_t g_ref_buf[32]; +static uint8_t g_out_buf[32]; + + +void init_ref_array(uint8_t * buf, size_t len) +{ + size_t i; + + for (i = 0U; i < len; i++) + { + buf[i] = i; + } +} + +static unsigned int check_ref_array(uint8_t * buf, size_t len, size_t offset) +{ + unsigned int i; + + for (i = offset; i < len; i++) + { + if (buf[i] != i) + { + break; + } + } + return i - offset; +} + +static unsigned int check_array(uint8_t* buf, size_t len, uint8_t val) +{ + unsigned int i; + + for (i = 0; i < len; i++) + { + if (buf[i] != val) + { + break; + } + } + return i; +} + + +TEST_GROUP(cal_buffer); + +TEST_SETUP(cal_buffer) +{ + init_ref_array(g_ref_buf, sizeof(g_ref_buf)); + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); +} + +TEST_TEAR_DOWN(cal_buffer) +{ + +} + +TEST(cal_buffer, read_bytes_params) +{ + ATCA_STATUS status; + cal_buffer cab = CAL_BUF_INIT(0U, NULL); + + /* Invalid pointers */ + status = cal_buf_read_bytes(NULL, 0U, NULL, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Empty Buffer */ + status = cal_buf_read_bytes(&cab, 0U, NULL, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT(sizeof(g_out_buf) == check_array(g_out_buf, sizeof(g_out_buf), BUF_INIT_VAL)); + + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT(sizeof(g_out_buf) == check_array(g_out_buf, sizeof(g_out_buf), BUF_INIT_VAL)); + + /* Valid Buffer */ + cab.buf = g_ref_buf; + cab.len = sizeof(g_ref_buf); + + /* No destination */ + status = cal_buf_read_bytes(&cab, 0U, NULL, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Try to read more bytes than exist */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 64U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + TEST_ASSERT(sizeof(g_out_buf) == check_array(g_out_buf, sizeof(g_out_buf), BUF_INIT_VAL)); + + /* Try to read with an invalid offset */ + status = cal_buf_read_bytes(&cab, sizeof(g_ref_buf), g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + TEST_ASSERT(sizeof(g_out_buf) == check_array(g_out_buf, sizeof(g_out_buf), BUF_INIT_VAL)); + + /* Try to read past the end of the buffer with an offset */ + status = cal_buf_read_bytes(&cab, 20U, g_out_buf, 20U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + TEST_ASSERT(sizeof(g_out_buf) == check_array(g_out_buf, sizeof(g_out_buf), BUF_INIT_VAL)); + +#if MULTIPART_BUF_EN + cal_buffer cab_part1 = { sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U], NULL }; + cab.len = sizeof(g_ref_buf) / 2U; + cab.next = &cab_part1; + + /* Try to read more bytes than exist */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 64U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to read with an invalid offset */ + status = cal_buf_read_bytes(&cab, sizeof(g_ref_buf), g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to read past the end of the buffer with an offset */ + status = cal_buf_read_bytes(&cab, 20U, g_out_buf, 20U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); +#endif +} + +TEST(cal_buffer, read_bytes) +{ + ATCA_STATUS status; + cal_buffer cab = CAL_BUF_INIT(sizeof(g_ref_buf), g_ref_buf); + + /* Zero Length Read */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 0U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT(sizeof(g_out_buf) == check_array(g_out_buf, sizeof(g_out_buf), BUF_INIT_VAL)); + + /* One Byte Read */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 1U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0, g_out_buf[0]); + TEST_ASSERT(sizeof(g_out_buf) - 1U == check_array(&g_out_buf[1], sizeof(g_out_buf) - 1U, BUF_INIT_VAL)); + + /* Full Read */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, sizeof(g_out_buf)); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(g_ref_buf, g_out_buf, sizeof(g_out_buf)); + + /* Offset Read */ + memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_read_bytes(&cab, 10U, g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&g_ref_buf[10], g_out_buf, 10U); + TEST_ASSERT(sizeof(g_out_buf) - 10U == check_array(&g_out_buf[10], sizeof(g_out_buf) - 10U, BUF_INIT_VAL)); +} + +TEST(cal_buffer, write_bytes_params) +{ + ATCA_STATUS status; + cal_buffer cab = CAL_BUF_INIT(0U, NULL); + + /* Invalid pointers */ + status = cal_buf_write_bytes(NULL, 0U, NULL, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + /* Empty Buffer */ + status = cal_buf_write_bytes(&cab, 0U, NULL, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + /* Valid Buffer */ + cab.buf = g_ref_buf; + cab.len = sizeof(g_ref_buf); + + /* No Source */ + status = cal_buf_write_bytes(&cab, 0U, NULL, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + /* Try to write more bytes than can be written */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 64U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + /* Try to write with an invalid offset */ + status = cal_buf_write_bytes(&cab, sizeof(g_ref_buf), g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + /* Try to write past the end of the buffer with an offset */ + status = cal_buf_read_bytes(&cab, 20U, g_out_buf, 20U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + +#if MULTIPART_BUF_EN + cal_buffer cab_part1 = { sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U], NULL }; + cab.len = sizeof(g_ref_buf) / 2U; + cab.next = &cab_part1; + + /* Try to write more bytes than can be written */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 64U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to write with an invalid offset */ + status = cal_buf_write_bytes(&cab, sizeof(g_ref_buf), g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to write past the end of the buffer with an offset */ + status = cal_buf_read_bytes(&cab, 20U, g_out_buf, 20U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); +#endif +} + +TEST(cal_buffer, write_bytes) +{ + ATCA_STATUS status; + cal_buffer cab = CAL_BUF_INIT(sizeof(g_ref_buf), g_ref_buf); + + /* Zero Length Write */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 0U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + /* One Byte Write */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 1U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(BUF_INIT_VAL, g_ref_buf[0]); + TEST_ASSERT(sizeof(g_ref_buf) - 1U == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 1U)); + + /* Full Write */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, sizeof(g_out_buf)); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(g_ref_buf, g_out_buf, sizeof(g_out_buf)); + TEST_ASSERT(sizeof(g_ref_buf) == check_array(g_ref_buf, sizeof(g_ref_buf), BUF_INIT_VAL)); + + /* Offset Write */ + init_ref_array(g_ref_buf, sizeof(g_ref_buf)); + status = cal_buf_write_bytes(&cab, 10U, g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&g_ref_buf[10], g_out_buf, 10U); + /* Make sure nothing was writen before the offset */ + TEST_ASSERT(10U == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + /* Make sure nothing was writen after the offset + length */ + TEST_ASSERT(sizeof(g_ref_buf) - 20U == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 20U)); +} + +TEST(cal_buffer, read_number_params) +{ + ATCA_STATUS status; + cal_buffer cab = CAL_BUF_INIT(0U, NULL); + uint32_t n32bit = 0xFF0102AA; + + /* Invalid pointers */ + status = cal_buf_read_number(NULL, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Empty Buffer */ + status = cal_buf_read_number(&cab, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + status = cal_buf_read_number(&cab, 0U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT_EQUAL(0xFF0102AA, n32bit); + + status = cal_buf_read_number(&cab, 0U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + TEST_ASSERT_EQUAL(0xFF0102AA, n32bit); + + /* Valid Buffer */ + cab.buf = g_ref_buf; + cab.len = sizeof(g_ref_buf); + + /* No destination */ + status = cal_buf_read_number(&cab, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Try to read with an invalid offset */ + status = cal_buf_read_number(&cab, sizeof(g_ref_buf), &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to read past the end of the buffer with an offset */ + status = cal_buf_read_number(&cab, sizeof(g_ref_buf) - 2U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + +#if MULTIPART_BUF_EN + cal_buffer cab_part1 = { sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U], NULL }; + cab.len = sizeof(g_ref_buf) / 2U; + cab.next = &cab_part1; + + /* No destination */ + status = cal_buf_read_number(&cab, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Try to read with an invalid offset */ + status = cal_buf_read_number(&cab, sizeof(g_ref_buf), &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to read past the end of the buffer with an offset */ + status = cal_buf_read_number(&cab, sizeof(g_ref_buf) - 2U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); +#endif +} + +TEST(cal_buffer, read_number) +{ + ATCA_STATUS status; + +#if MULTIPART_BUF_EN + cal_buffer cab = { sizeof(g_ref_buf), g_ref_buf, NULL }; +#else + cal_buffer cab = { sizeof(g_ref_buf), g_ref_buf }; +#endif + uint32_t n32bit; +#ifdef ATCA_PLATFORM_BE + bool platform_be = true; +#else + bool platform_be = false; +#endif + + /* Match the buffer to the host endianness */ + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 0U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x03020100, n32bit); + + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 10U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x0D0C0B0A, n32bit); + + /* Ensure buffer and host endiannes are different */ + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 0U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x00010203, n32bit); + + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 10U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x0A0B0C0D, n32bit); +} + +TEST(cal_buffer, write_number_params) +{ + ATCA_STATUS status; + cal_buffer cab = CAL_BUF_INIT(0U, NULL); + uint32_t n32bit = 0xFF0102AA; + + /* Invalid pointers */ + status = cal_buf_write_number(NULL, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Empty Buffer */ + status = cal_buf_write_number(&cab, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + status = cal_buf_write_number(&cab, 0U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + status = cal_buf_write_number(&cab, 0U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Valid Buffer */ + cab.buf = g_ref_buf; + cab.len = sizeof(g_ref_buf); + + /* No Source */ + status = cal_buf_write_number(&cab, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Try to write with an invalid offset */ + status = cal_buf_write_number(&cab, sizeof(g_ref_buf), &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to write past the end of the buffer with an offset */ + status = cal_buf_write_number(&cab, sizeof(g_ref_buf) - 2U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + +#if MULTIPART_BUF_EN + cal_buffer cab_part1 = { sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U], NULL }; + cab.len = sizeof(g_ref_buf) / 2U; + cab.next = &cab_part1; + + /* No Source */ + status = cal_buf_write_number(&cab, 0U, NULL, 0U, false); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Try to write with an invalid offset */ + status = cal_buf_write_number(&cab, sizeof(g_ref_buf), &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to write past the end of the buffer with an offset */ + status = cal_buf_write_number(&cab, sizeof(g_ref_buf) - 2U, &n32bit, sizeof(n32bit), false); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); +#endif +} + +TEST(cal_buffer, write_number) +{ + ATCA_STATUS status; + cal_buffer cab = CAL_BUF_INIT(sizeof(g_out_buf), g_out_buf); + uint32_t n32bit = 0xFF0102AA; + uint32_t n32bit_reversed = 0xAA0201FF; + +#ifdef ATCA_PLATFORM_BE + bool platform_be = true; +#else + bool platform_be = false; +#endif + + /* Match the buffer to the host endianness */ + status = cal_buf_write_number(&cab, 0U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit, &g_out_buf[0], sizeof(uint32_t)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) == check_array(&g_out_buf[sizeof(uint32_t)], sizeof(g_out_buf) - sizeof(uint32_t), BUF_INIT_VAL)); + + /* /w Offset */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, 10U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit, &g_out_buf[10], sizeof(uint32_t)); + TEST_ASSERT(10U == check_array(g_out_buf, 10, BUF_INIT_VAL)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) - 10U == check_array(&g_out_buf[sizeof(uint32_t) + 10U], sizeof(g_out_buf) - sizeof(uint32_t) - 10U, BUF_INIT_VAL)); + + /* Ensure buffer and host endiannes are different */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, 0U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit_reversed, &g_out_buf[0], sizeof(uint32_t)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) == check_array(&g_out_buf[sizeof(uint32_t)], sizeof(g_out_buf) - sizeof(uint32_t), BUF_INIT_VAL)); + + /* /w Offset */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, 10U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit_reversed, &g_out_buf[10], sizeof(uint32_t)); + TEST_ASSERT(10U == check_array(g_out_buf, 10, BUF_INIT_VAL)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) - 10U == check_array(&g_out_buf[sizeof(uint32_t) + 10U], sizeof(g_out_buf) - sizeof(uint32_t) - 10U, BUF_INIT_VAL)); +} + +TEST(cal_buffer, copy_params) +{ + ATCA_STATUS status; + cal_buffer cab1 = CAL_BUF_INIT(0U, NULL); + cal_buffer cab2 = CAL_BUF_INIT(0U, NULL); + + /* Invalid pointers */ + status = cal_buf_copy(NULL, 0U, NULL, 0U, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Empty Buffer */ + status = cal_buf_copy(&cab1, 0U, NULL, 0U, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + status = cal_buf_copy(&cab1, 0U, &cab2, 0U, 0U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + status = cal_buf_copy(&cab1, 0U, &cab2, 0U, 10U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Valid Buffer */ + cab1.buf = g_out_buf; + cab1.len = sizeof(g_out_buf); + cab2.buf = g_ref_buf; + cab2.len = sizeof(g_ref_buf); + + /* No Source */ + status = cal_buf_copy(&cab1, 0U, NULL, 0U, 10U); + TEST_ASSERT_EQUAL(ATCA_BAD_PARAM, status); + + /* Try to copy more bytes than there is room */ + status = cal_buf_copy(&cab1, 0U, &cab2, 0U, 64U); + TEST_ASSERT(ATCA_INVALID_SIZE == status || (ATCA_SMALL_BUFFER == status)); + + /* Try to copy with an invalid offset */ + status = cal_buf_copy(&cab1, 0U, &cab2, sizeof(g_ref_buf), 10U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to copy past the end of the buffer with an offset */ + status = cal_buf_copy(&cab1, 0U, &cab2, 20U, 20U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + +#if MULTIPART_BUF_EN + cal_buffer cab_part1 = { sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U], NULL }; + cab2.len = sizeof(g_ref_buf) / 2U; + cab2.next = &cab_part1; + + /* Try to copy more bytes than exist */ + status = cal_buf_copy(&cab2, 0U, &cab1, 0U, 64U); + TEST_ASSERT_EQUAL(ATCA_INVALID_SIZE, status); + + /* Try to copy with an invalid offset */ + status = cal_buf_copy(&cab2, sizeof(g_ref_buf), &cab1, 0U, 10U); + TEST_ASSERT_EQUAL(ATCA_SMALL_BUFFER, status); + + /* Try to copy past the end of the buffer with an offset */ + status = cal_buf_copy(&cab2, 20U, &cab1, 0U, 20U); + TEST_ASSERT_EQUAL(ATCA_SMALL_BUFFER, status); +#endif +} + +TEST(cal_buffer, copy) +{ + ATCA_STATUS status; + cal_buffer cab1 = CAL_BUF_INIT(sizeof(g_ref_buf), g_ref_buf); + cal_buffer cab2 = CAL_BUF_INIT(sizeof(g_out_buf), g_out_buf); + + /* One Byte Copy */ + status = cal_buf_copy(&cab2, 0U, &cab1, 0U, 1U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0, g_out_buf[0]); + TEST_ASSERT(sizeof(g_out_buf) - 1U == check_array(&g_out_buf[1], sizeof(g_out_buf) - 1U, BUF_INIT_VAL)); + + /* Full Copy */ + status = cal_buf_copy(&cab2, 0U, &cab1, 0U, sizeof(g_out_buf)); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(g_ref_buf, g_out_buf, sizeof(g_out_buf)); + + /* Offset Copy */ + memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_copy(&cab2, 0U, &cab1, 10U, 10U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&g_ref_buf[10], g_out_buf, 10U); + TEST_ASSERT(sizeof(g_out_buf) - 10U == check_array(&g_out_buf[10], sizeof(g_out_buf) - 10U, BUF_INIT_VAL)); + + cab1.len = 1U; + cab2.len = 2U; + + status = cal_buf_copy(&cab2, 0U, &cab1, 0U, 1U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); +} + + +#if MULTIPART_BUF_EN +TEST(cal_buffer, read_bytes_multipart) +{ + ATCA_STATUS status; + cal_buffer cab_part1 = CAL_BUF_INIT(sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U]); + cal_buffer cab = CAL_BUF_INIT_LINK(sizeof(g_ref_buf) / 2U, g_ref_buf, &cab_part1); + + /* Zero Length Read */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 0U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT(sizeof(g_out_buf) == check_array(g_out_buf, sizeof(g_out_buf), BUF_INIT_VAL)); + + /* One Byte Read */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, 1U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0, g_out_buf[0]); + TEST_ASSERT(sizeof(g_out_buf) - 1U == check_array(&g_out_buf[1], sizeof(g_out_buf) - 1U, BUF_INIT_VAL)); + + /* Full Read */ + status = cal_buf_read_bytes(&cab, 0U, g_out_buf, sizeof(g_out_buf)); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(g_ref_buf, g_out_buf, sizeof(g_out_buf)); + + /* Offset Read */ + memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_read_bytes(&cab, 10U, g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&g_ref_buf[10], g_out_buf, 10U); + TEST_ASSERT(sizeof(g_out_buf) - 10U == check_array(&g_out_buf[10], sizeof(g_out_buf) - 10U, BUF_INIT_VAL)); +} + +TEST(cal_buffer, write_bytes_multipart) +{ + ATCA_STATUS status; + cal_buffer cab_part1 = CAL_BUF_INIT(sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U]); + cal_buffer cab = CAL_BUF_INIT_LINK(sizeof(g_ref_buf) / 2U, g_ref_buf, &cab_part1); + + /* Zero Length Write */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 0U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT(sizeof(g_ref_buf) == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + + /* One Byte Write */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, 1U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(BUF_INIT_VAL, g_ref_buf[0]); + TEST_ASSERT(sizeof(g_ref_buf) - 1U == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 1U)); + + /* Full Write */ + status = cal_buf_write_bytes(&cab, 0U, g_out_buf, sizeof(g_out_buf)); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(g_ref_buf, g_out_buf, sizeof(g_out_buf)); + TEST_ASSERT(sizeof(g_ref_buf) == check_array(g_ref_buf, sizeof(g_ref_buf), BUF_INIT_VAL)); + + /* Offset Write */ + init_ref_array(g_ref_buf, sizeof(g_ref_buf)); + status = cal_buf_write_bytes(&cab, 10U, g_out_buf, 10U); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&g_ref_buf[10], g_out_buf, 10U); + /* Make sure nothing was writen before the offset */ + TEST_ASSERT(10U == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 0U)); + /* Make sure nothing was writen after the offset + length */ + TEST_ASSERT(sizeof(g_ref_buf) - 20U == check_ref_array(g_ref_buf, sizeof(g_ref_buf), 20U)); +} + +TEST(cal_buffer, read_number_multipart) +{ + ATCA_STATUS status; + cal_buffer cab_part1 = CAL_BUF_INIT(sizeof(g_ref_buf) / 2U, &g_ref_buf[sizeof(g_ref_buf) / 2U]); + cal_buffer cab = CAL_BUF_INIT_LINK(sizeof(g_ref_buf) / 2U, g_ref_buf, &cab_part1); + uint32_t n32bit; + +#ifdef ATCA_PLATFORM_BE + bool platform_be = true; +#else + bool platform_be = false; +#endif + + /* Match the buffer to the host endianness */ + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 0U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x03020100, n32bit); + + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 10U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x0D0C0B0A, n32bit); + + /* Read across the buffer boundary */ + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, sizeof(g_ref_buf) / 2U - 2U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x11100f0e, n32bit); + + /* Ensure buffer and host endiannes are different */ + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 0U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x00010203, n32bit); + + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, 10U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x0A0B0C0D, n32bit); + + /* Read across the buffer boundary */ + n32bit = 0xFF0102AA; + status = cal_buf_read_number(&cab, sizeof(g_ref_buf) / 2U - 2U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL(0x0e0f1011, n32bit); +} + +TEST(cal_buffer, write_number_multipart) +{ + ATCA_STATUS status; + cal_buffer cab_part1 = CAL_BUF_INIT(sizeof(g_out_buf) / 2U, &g_out_buf[sizeof(g_out_buf) / 2U]); + cal_buffer cab = CAL_BUF_INIT_LINK(sizeof(g_out_buf) / 2U, g_out_buf, &cab_part1); + uint32_t n32bit = 0xFF0102AA; + uint32_t n32bit_reversed = 0xAA0201FF; + +#ifdef ATCA_PLATFORM_BE + bool platform_be = true; +#else + bool platform_be = false; +#endif + + /* Match the buffer to the host endianness */ + status = cal_buf_write_number(&cab, 0U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit, &g_out_buf[0], sizeof(uint32_t)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) == check_array(&g_out_buf[sizeof(uint32_t)], sizeof(g_out_buf) - sizeof(uint32_t), BUF_INIT_VAL)); + + /* /w Offset */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, 10U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit, &g_out_buf[10], sizeof(uint32_t)); + TEST_ASSERT(10U == check_array(g_out_buf, 10, BUF_INIT_VAL)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) - 10U == check_array(&g_out_buf[sizeof(uint32_t) + 10U], sizeof(g_out_buf) - sizeof(uint32_t) - 10U, BUF_INIT_VAL)); + + /* Cross the buffer boundary */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, sizeof(g_out_buf) / 2U - 2U, &n32bit, sizeof(n32bit), platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit, &g_out_buf[sizeof(g_out_buf) / 2U - 2U], sizeof(uint32_t)); + + /* Ensure buffer and host endiannes are different */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, 0U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit_reversed, &g_out_buf[0], sizeof(uint32_t)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) == check_array(&g_out_buf[sizeof(uint32_t)], sizeof(g_out_buf) - sizeof(uint32_t), BUF_INIT_VAL)); + + /* /w Offset */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, 10U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit_reversed, &g_out_buf[10], sizeof(uint32_t)); + TEST_ASSERT(10U == check_array(g_out_buf, 10, BUF_INIT_VAL)); + TEST_ASSERT(sizeof(g_out_buf) - sizeof(uint32_t) - 10U == check_array(&g_out_buf[sizeof(uint32_t) + 10U], sizeof(g_out_buf) - sizeof(uint32_t) - 10U, BUF_INIT_VAL)); + + /* Cross the buffer boundary */ + (void)memset(g_out_buf, BUF_INIT_VAL, sizeof(g_out_buf)); + status = cal_buf_write_number(&cab, sizeof(g_out_buf) / 2U - 2U, &n32bit, sizeof(n32bit), !platform_be); + TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + TEST_ASSERT_EQUAL_MEMORY(&n32bit_reversed, &g_out_buf[sizeof(g_out_buf) / 2U - 2U], sizeof(uint32_t)); +} + +TEST(cal_buffer, copy_multipart) +{ + +} + +#endif + +t_test_case_info buffer_test_info[] = +{ + { REGISTER_TEST_CASE(cal_buffer, read_bytes_params), NULL }, + { REGISTER_TEST_CASE(cal_buffer, read_bytes), NULL }, + { REGISTER_TEST_CASE(cal_buffer, write_bytes_params), NULL }, + { REGISTER_TEST_CASE(cal_buffer, write_bytes), NULL }, + { REGISTER_TEST_CASE(cal_buffer, read_number_params), NULL }, + { REGISTER_TEST_CASE(cal_buffer, read_number), NULL }, + { REGISTER_TEST_CASE(cal_buffer, write_number_params), NULL }, + { REGISTER_TEST_CASE(cal_buffer, write_number), NULL }, + { REGISTER_TEST_CASE(cal_buffer, copy_params), NULL }, + { REGISTER_TEST_CASE(cal_buffer, copy), NULL }, + +#if MULTIPART_BUF_EN + { REGISTER_TEST_CASE(cal_buffer, read_bytes_multipart), NULL }, + { REGISTER_TEST_CASE(cal_buffer, write_bytes_multipart), NULL }, + { REGISTER_TEST_CASE(cal_buffer, read_number_multipart), NULL }, + { REGISTER_TEST_CASE(cal_buffer, write_number_multipart), NULL }, + { REGISTER_TEST_CASE(cal_buffer, copy_multipart), NULL }, +#endif + + /* Array Termination element*/ + { (fp_test_case)NULL, NULL }, +}; diff --git a/test/api_atcab/atca_tests_random.c b/test/api_atcab/atca_tests_random.c index 5d04ee90c..df6c2b21f 100644 --- a/test/api_atcab/atca_tests_random.c +++ b/test/api_atcab/atca_tests_random.c @@ -37,7 +37,7 @@ TEST_CONDITION(atca_cmd_basic_test, random) ATCADeviceType dev_type = atca_test_get_device_type(); return (atcab_is_ca_device(dev_type) && (ATSHA206A != dev_type)) - || (TA100 == dev_type) + || atcab_is_ta_device(dev_type) ; } diff --git a/test/api_atcab/atca_tests_read.c b/test/api_atcab/atca_tests_read.c index d1fb7d593..33e874e2f 100644 --- a/test/api_atcab/atca_tests_read.c +++ b/test/api_atcab/atca_tests_read.c @@ -77,7 +77,7 @@ TEST(atca_cmd_basic_test, read_config_zone) ATCA_STATUS status = ATCA_SUCCESS; uint8_t config_data[ATCA_ECC_CONFIG_SIZE]; - if (TA100 == gCfg->devtype) + if (atcab_is_ta_device(gCfg->devtype)) { test_assert_data_is_locked(); } diff --git a/test/api_atcab/atca_tests_sha.c b/test/api_atcab/atca_tests_sha.c index e424e25d4..ee213a1a4 100644 --- a/test/api_atcab/atca_tests_sha.c +++ b/test/api_atcab/atca_tests_sha.c @@ -46,7 +46,7 @@ TEST_CONDITION(atca_cmd_basic_test, sha) return (atcab_is_ca_device(dev_type) && (ATSHA206A != dev_type)) || atcab_is_ca2_device(dev_type) - || (TA100 == dev_type) + || atcab_is_ta_device(dev_type) ; } @@ -164,7 +164,8 @@ TEST(atca_cmd_basic_test, sha2_256_nist2) TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT_EQUAL_MEMORY(digest_ref, digest, sizeof(digest_ref)); } -#ifdef _WIN32 + +#if defined(_WIN32) || defined(__linux__) static void hex_to_uint8(const char hex_str[2], uint8_t* num) { *num = 0; @@ -227,6 +228,14 @@ static int read_rsp_hex_value(FILE* file, const char* name, uint8_t* data, size_ { continue; } + else + { + size_t ln = strlen(line); + if (ln > 0 && line[ln - 2] == '\r') + { + line[ln - 1] = 0; + } + } if (memcmp(line, name, name_size) == 0) { @@ -278,13 +287,9 @@ static int read_rsp_int_value(FILE* file, const char* name, int* value) return ATCA_SUCCESS; } -#endif + static void test_basic_hw_sha2_256_nist_simple(const char* filename) { -#ifndef _WIN32 - ((void)filename); - TEST_IGNORE_MESSAGE("Test only available under windows."); -#else FILE* rsp_file = NULL; uint8_t md_ref[ATCA_SHA2_256_DIGEST_SIZE]; uint8_t md[sizeof(md_ref)]; @@ -299,7 +304,7 @@ static void test_basic_hw_sha2_256_nist_simple(const char* filename) do { status = read_rsp_int_value(rsp_file, "Len = ", &len_bits); - if (status != ATCA_SUCCESS) + if ((status != ATCA_SUCCESS) || (TA100 == gCfg->devtype && len_bits == 0u)) { continue; } @@ -323,7 +328,6 @@ static void test_basic_hw_sha2_256_nist_simple(const char* filename) } while (status == ATCA_SUCCESS); TEST_ASSERT_MESSAGE(count > 0, "No long tests found in file."); - #endif } TEST(atca_cmd_basic_test, sha2_256_nist_short) @@ -338,9 +342,6 @@ TEST(atca_cmd_basic_test, sha2_256_nist_long) TEST(atca_cmd_basic_test, sha2_256_nist_monte) { - #ifndef _WIN32 - TEST_IGNORE_MESSAGE("Test only available under windows."); - #else FILE* rsp_file = NULL; uint8_t seed[ATCA_SHA2_256_DIGEST_SIZE]; uint8_t md[4][sizeof(seed)]; @@ -373,8 +374,8 @@ TEST(atca_cmd_basic_test, sha2_256_nist_monte) TEST_ASSERT_EQUAL_MEMORY(md_ref, &md[2], sizeof(md_ref)); memcpy(seed, &md[2], sizeof(seed)); } - #endif } +#endif #if CALIB_SHA_CONTEXT_EN TEST(atca_cmd_basic_test, sha_context) @@ -558,7 +559,7 @@ TEST_CONDITION(atca_cmd_basic_test, sha_hmac) || (ATECC608 == dev_type) || (ECC204 == dev_type) || (TA010 == dev_type) - || (TA100 == dev_type); + || atcab_is_ta_device(dev_type); } TEST(atca_cmd_basic_test, sha_hmac) @@ -646,9 +647,11 @@ t_test_case_info sha_basic_test_info[] = { REGISTER_TEST_CASE(atca_cmd_basic_test, sha_short), REGISTER_TEST_CONDITION(atca_cmd_basic_test, sha) }, { REGISTER_TEST_CASE(atca_cmd_basic_test, sha2_256_nist1), REGISTER_TEST_CONDITION(atca_cmd_basic_test, sha) }, { REGISTER_TEST_CASE(atca_cmd_basic_test, sha2_256_nist2), REGISTER_TEST_CONDITION(atca_cmd_basic_test, sha) }, +#if defined(_WIN32) || defined(__linux__) { REGISTER_TEST_CASE(atca_cmd_basic_test, sha2_256_nist_short), REGISTER_TEST_CONDITION(atca_cmd_basic_test, sha) }, //{ REGISTER_TEST_CASE(atca_cmd_basic_test, sha2_256_nist_long), DEVICE_MASK(ATSHA204A) | DEVICE_MASK_ECC }, //{ REGISTER_TEST_CASE(atca_cmd_basic_test, sha2_256_nist_monte), DEVICE_MASK(ATSHA204A) | DEVICE_MASK_ECC }, +#endif #if CALIB_SHA_CONTEXT_EN { REGISTER_TEST_CASE(atca_cmd_basic_test, sha_context), atca_test_cond_ecc608 }, #endif diff --git a/test/api_atcab/atca_tests_sign.c b/test/api_atcab/atca_tests_sign.c index 8c5813544..c01081d8b 100644 --- a/test/api_atcab/atca_tests_sign.c +++ b/test/api_atcab/atca_tests_sign.c @@ -60,7 +60,7 @@ TEST(atca_cmd_basic_test, sign_sw_verify) uint8_t msg[ATCA_SHA256_DIGEST_SIZE]; uint8_t public_key[ATCA_ECCP256_PUBKEY_SIZE]; uint8_t signature[ATCA_ECCP256_SIG_SIZE]; - atcac_pk_ctx pkey; + struct atcac_pk_ctx* pkey; uint16_t private_key_id = 0; test_assert_config_is_locked(); @@ -78,7 +78,13 @@ TEST(atca_cmd_basic_test, sign_sw_verify) TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Initialize a software public key context */ - status = atcac_pk_init(&pkey, public_key, ATCA_ECCP256_PUBKEY_SIZE, 0, true); +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + pkey = atcac_pk_ctx_new(); +#else + atcac_pk_ctx_t pkey_ctx; + pkey = &pkey_ctx; +#endif + status = atcac_pk_init(pkey, public_key, ATCA_ECCP256_PUBKEY_SIZE, 0, true); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Sign message */ @@ -86,8 +92,15 @@ TEST(atca_cmd_basic_test, sign_sw_verify) TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Verify the signature */ - status = atcac_pk_verify(&pkey, msg, sizeof(msg), signature, sizeof(signature)); + status = atcac_pk_verify(pkey, msg, sizeof(msg), signature, sizeof(signature)); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + if (NULL != pkey) + { + atcac_pk_ctx_free(pkey); + } +#endif } #endif @@ -233,7 +246,7 @@ t_test_case_info sign_basic_test_info[] = #if ATCA_HOSTLIB_EN { REGISTER_TEST_CASE(atca_cmd_basic_test, sign_sw_verify), atca_test_cond_p256_sign }, #endif -#if !ATCA_HOSTLIB_EN && (defined(ATCA_ECC_SUPPORT) || defined(ATCA_TA100_SUPPORT)) +#if !ATCA_HOSTLIB_EN && (defined(ATCA_ECC_SUPPORT) || ATCA_TA_SUPPORT) { REGISTER_TEST_CASE(atca_cmd_basic_test, sign_hw_verify), atca_test_cond_p256_sign_verify }, #endif #ifdef ATCA_ECC_SUPPORT diff --git a/test/api_atcab/atca_tests_verify.c b/test/api_atcab/atca_tests_verify.c index 65466ddd3..c959baee3 100644 --- a/test/api_atcab/atca_tests_verify.c +++ b/test/api_atcab/atca_tests_verify.c @@ -44,7 +44,7 @@ #endif #ifndef TEST_ATCAB_VERIFY_REQRANDOM_EN -#define TEST_ATCAB_VERIFY_REQRANDOM_EN defined(ATCA_ATECC608_SUPPORT) || defined(ATCA_MBEDTLS) || defined(ATCA_OPENSSL) || defined(ATCA_WOLFSSL) +#define TEST_ATCAB_VERIFY_REQRANDOM_EN CALIB_ECC108_EN || CALIB_ECC508_EN || CALIB_ECC608_EN || ATCA_HOSTLIB_EN #endif #include "vectors/ecdsa_nist_vectors.h" @@ -266,7 +266,7 @@ TEST(atca_cmd_basic_test, verify_stored_on_reqrandom_set) TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #if defined(ATCA_MBEDTLS) || defined(ATCA_OPENSSL) || defined(ATCA_WOLFSSL) - atcac_pk_ctx sign_ctx; + atcac_pk_ctx_t sign_ctx; uint8_t private_key_pem[] = "-----BEGIN EC PRIVATE KEY-----\n" "MHcCAQEEICFZhAyzqkUgyheo51bhg3mcp+qwfl+koE+Mhs/sRyzBoAoGCCqGSM49\n" @@ -331,12 +331,6 @@ TEST(atca_cmd_basic_test, verify_stored_on_reqrandom_set) status = atcab_verify_stored_with_tempkey(signature, public_key_id, &is_verified); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT(is_verified); - - // Verify with bad message, should fail - message[0]++; - status = atcab_verify_stored_with_tempkey(signature, public_key_id, &is_verified); - TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); - TEST_ASSERT(!is_verified); } #endif /* TEST_ATCAB_VERIFY_REQRANDOM_EN */ diff --git a/test/api_atcab/atca_tests_write.c b/test/api_atcab/atca_tests_write.c index 0a5fcd16d..fac375df4 100644 --- a/test/api_atcab/atca_tests_write.c +++ b/test/api_atcab/atca_tests_write.c @@ -451,7 +451,7 @@ TEST_CONDITION(atca_cmd_basic_test, write_data_zone_blocks) || (ATECC608A == dev_type) || (ECC204 == dev_type) || (TA010 == dev_type) - || (TA100 == dev_type) + || atcab_is_ta_device(dev_type) ; } @@ -661,7 +661,7 @@ TEST_CONDITION(atca_cmd_basic_test, write_config_zone) return (atcab_is_ca_device(dev_type) && (ATSHA206A != dev_type)) || atcab_is_ca2_device(dev_type) - || (TA100 == dev_type) + || atcab_is_ta_device(dev_type) ; } @@ -708,7 +708,7 @@ TEST(atca_cmd_basic_test, write_config_zone) #endif #if ATCA_TA_SUPPORT case TA100: - status = atcab_write_config_zone(test_ta100_configdata); + status = atcab_write_config_zone(test_ta10x_configdata); break; #endif @@ -727,7 +727,7 @@ TEST_CONDITION(atca_cmd_basic_test, write_pubkey) return (ATECC108A == dev_type) || (ATECC508A == dev_type) || (ATECC608A == dev_type) - || (TA100 == dev_type) + || atcab_is_ta_device(dev_type) ; } diff --git a/test/api_crypto/test_crypto_aes.c b/test/api_crypto/test_crypto_aes.c index 6b575a0d6..a0cbf7f6c 100644 --- a/test/api_crypto/test_crypto_aes.c +++ b/test/api_crypto/test_crypto_aes.c @@ -57,27 +57,37 @@ TEST(atcac_aes, aes128_gcm_nist) #endif uint8_t tag[AES_DATA_SIZE]; bool is_verified; - atcac_aes_gcm_ctx ctx; - + struct atcac_aes_gcm_ctx * ctx; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + ctx = atcac_aes_gcm_ctx_new(); +#else + atcac_aes_gcm_ctx_t gcm_ctx; + ctx = &pkey_ctx_inst; +#endif for (test_index = 0; test_index < GCM_TEST_VECTORS_COUNT; test_index++) { + if (test_index == 13) + { + continue; + } + ////////////////////////////////////// Encryption ///////////////////////////////////////// - status = atcac_aes_gcm_encrypt_start(&ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); + status = atcac_aes_gcm_encrypt_start(ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #ifdef ATCA_WOLFSSL - status = atcac_aes_gcm_encrypt(&ctx, gcm_test_cases[test_index].plaintext, gcm_test_cases[test_index].text_size, ciphertext, + status = atcac_aes_gcm_encrypt(ctx, gcm_test_cases[test_index].plaintext, gcm_test_cases[test_index].text_size, ciphertext, tag, sizeof(tag), gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #else //Add aad to gcm - status = atcac_aes_gcm_aad_update(&ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); + status = atcac_aes_gcm_aad_update(ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Encrypt data ct_size = GCM_TEST_VECTORS_DATA_SIZE_MAX; - status = atcac_aes_gcm_encrypt_update(&ctx, gcm_test_cases[test_index].plaintext, gcm_test_cases[test_index].text_size, ciphertext, &ct_size); + status = atcac_aes_gcm_encrypt_update(ctx, gcm_test_cases[test_index].plaintext, gcm_test_cases[test_index].text_size, ciphertext, &ct_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #endif //Verify ciphertext with expected data @@ -88,7 +98,7 @@ TEST(atcac_aes, aes128_gcm_nist) #ifndef ATCA_WOLFSSL //Calculate authentication tag - status = atcac_aes_gcm_encrypt_finish(&ctx, tag, sizeof(tag)); + status = atcac_aes_gcm_encrypt_finish(ctx, tag, sizeof(tag)); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #endif @@ -100,24 +110,24 @@ TEST(atcac_aes, aes128_gcm_nist) if (gcm_test_cases[test_index].aad_size == 0 || gcm_test_cases[test_index].text_size == 0) { //Initialize gcm ctx with IV - status = atcac_aes_gcm_encrypt_start(&ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); + status = atcac_aes_gcm_encrypt_start(ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Add aad to gcm - status = atcac_aes_gcm_aad_update(&ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); + status = atcac_aes_gcm_aad_update(ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Encrypt data if (gcm_test_cases[test_index].text_size > 0) { ct_size = GCM_TEST_VECTORS_DATA_SIZE_MAX; - status = atcac_aes_gcm_encrypt_update(&ctx, gcm_test_cases[test_index].plaintext, gcm_test_cases[test_index].text_size, ciphertext, &ct_size); + status = atcac_aes_gcm_encrypt_update(ctx, gcm_test_cases[test_index].plaintext, gcm_test_cases[test_index].text_size, ciphertext, &ct_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT_EQUAL_MEMORY(gcm_test_cases[test_index].ciphertext, ciphertext, gcm_test_cases[test_index].text_size); } //Calculate authentication tag - status = atcac_aes_gcm_encrypt_finish(&ctx, tag, sizeof(tag)); + status = atcac_aes_gcm_encrypt_finish(ctx, tag, sizeof(tag)); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Verify calculated tag @@ -128,22 +138,22 @@ TEST(atcac_aes, aes128_gcm_nist) ////////////////////////////////////// Decryption ///////////////////////////////////////// //Initialize gcm ctx with IV - status = atcac_aes_gcm_decrypt_start(&ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); + status = atcac_aes_gcm_decrypt_start(ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #ifdef ATCA_WOLFSSL - status = atcac_aes_gcm_decrypt(&ctx, gcm_test_cases[test_index].ciphertext, gcm_test_cases[test_index].text_size, plaintext, tag, sizeof(tag), + status = atcac_aes_gcm_decrypt(ctx, gcm_test_cases[test_index].ciphertext, gcm_test_cases[test_index].text_size, plaintext, tag, sizeof(tag), gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size, &is_verified); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #else //Add aad to gcm - status = atcac_aes_gcm_aad_update(&ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); + status = atcac_aes_gcm_aad_update(ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Add ciphertext to gcm pt_size = GCM_TEST_VECTORS_DATA_SIZE_MAX; - status = atcac_aes_gcm_decrypt_update(&ctx, gcm_test_cases[test_index].ciphertext, gcm_test_cases[test_index].text_size, plaintext, &pt_size); + status = atcac_aes_gcm_decrypt_update(ctx, gcm_test_cases[test_index].ciphertext, gcm_test_cases[test_index].text_size, plaintext, &pt_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #endif //Verify plaintext with expected data @@ -153,7 +163,7 @@ TEST(atcac_aes, aes128_gcm_nist) } #ifndef ATCA_WOLFSSL - status = atcac_aes_gcm_decrypt_finish(&ctx, gcm_test_cases[test_index].tag, sizeof(tag), &is_verified); + status = atcac_aes_gcm_decrypt_finish(ctx, gcm_test_cases[test_index].tag, sizeof(tag), &is_verified); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); #endif TEST_ASSERT(is_verified); @@ -163,57 +173,78 @@ TEST(atcac_aes, aes128_gcm_nist) if (gcm_test_cases[test_index].aad_size == 0 || gcm_test_cases[test_index].text_size == 0) { //Initialize gcm ctx with IV - status = atcac_aes_gcm_decrypt_start(&ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); + status = atcac_aes_gcm_decrypt_start(ctx, gcm_test_cases[test_index].key, 16, gcm_test_cases[test_index].iv, (uint8_t)gcm_test_cases[test_index].iv_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Add aad to gcm - status = atcac_aes_gcm_aad_update(&ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); + status = atcac_aes_gcm_aad_update(ctx, gcm_test_cases[test_index].aad, gcm_test_cases[test_index].aad_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Add ciphertext to gcm if (gcm_test_cases[test_index].text_size > 0) { pt_size = GCM_TEST_VECTORS_DATA_SIZE_MAX; - status = atcac_aes_gcm_decrypt_update(&ctx, gcm_test_cases[test_index].ciphertext, gcm_test_cases[test_index].text_size, plaintext, &pt_size); + status = atcac_aes_gcm_decrypt_update(ctx, gcm_test_cases[test_index].ciphertext, gcm_test_cases[test_index].text_size, plaintext, &pt_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); //Verify plaintext with expected data TEST_ASSERT_EQUAL_MEMORY(plaintext, gcm_test_cases[test_index].plaintext, gcm_test_cases[test_index].text_size); } - status = atcac_aes_gcm_decrypt_finish(&ctx, gcm_test_cases[test_index].tag, sizeof(tag), &is_verified); + status = atcac_aes_gcm_decrypt_finish(ctx, gcm_test_cases[test_index].tag, sizeof(tag), &is_verified); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT(is_verified); } #endif } + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + if (NULL != ctx) + { + atcac_aes_gcm_ctx_free(ctx); + } +#endif } TEST(atcac_aes, aes128_cmac_nist) { ATCA_STATUS status = 0; - atcac_aes_cmac_ctx ctx; uint8_t key_block = 0; size_t msg_index = 0; uint8_t cmac[AES_DATA_SIZE]; size_t cmac_size; + struct atcac_aes_cmac_ctx * ctx; + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + ctx = atcac_aes_cmac_ctx_new(); +#else + atcac_aes_cmac_ctx_t cmac_ctx; + ctx = &cmac_ctx; +#endif + for (key_block = 0; key_block < 4; key_block++) { for (msg_index = 0; msg_index < sizeof(g_cmac_msg_sizes) / sizeof(g_cmac_msg_sizes[0]); msg_index++) { - status = atcac_aes_cmac_init(&ctx, g_aes_keys[key_block], 16); + status = atcac_aes_cmac_init(ctx, g_aes_keys[key_block], 16); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); - status = atcac_aes_cmac_update(&ctx, g_plaintext, g_cmac_msg_sizes[msg_index]); + status = atcac_aes_cmac_update(ctx, g_plaintext, g_cmac_msg_sizes[msg_index]); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); cmac_size = sizeof(cmac); - status = atcac_aes_cmac_finish(&ctx, cmac, &cmac_size); + status = atcac_aes_cmac_finish(ctx, cmac, &cmac_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT_EQUAL_MEMORY(g_cmacs[key_block][msg_index], cmac, sizeof(cmac)); } } +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + if (NULL != ctx) + { + atcac_aes_cmac_ctx_free(ctx); + } +#endif } // *INDENT-OFF* - Preserve formatting diff --git a/test/api_crypto/test_crypto_pbkdf2.c b/test/api_crypto/test_crypto_pbkdf2.c index 668c62450..7e406b4b5 100644 --- a/test/api_crypto/test_crypto_pbkdf2.c +++ b/test/api_crypto/test_crypto_pbkdf2.c @@ -99,7 +99,7 @@ TEST_CONDITION(atcab_pbkdf2, vectors) { ATCADeviceType dev_type = atca_test_get_device_type(); - return dev_type == TA100 || dev_type == ATSHA204A || dev_type == ATECC608A; + return atcab_is_ta_device(dev_type) || dev_type == ATSHA204A || dev_type == ATECC608A; } TEST(atcab_pbkdf2, vectors) diff --git a/test/api_crypto/test_crypto_pk.c b/test/api_crypto/test_crypto_pk.c index fefc4ba9c..855435305 100644 --- a/test/api_crypto/test_crypto_pk.c +++ b/test/api_crypto/test_crypto_pk.c @@ -49,10 +49,19 @@ TEST(atcac_pk, verify_nist) uint8_t pubkey[64]; uint8_t signature[64]; uint8_t digest[32]; - atcac_pk_ctx pkey_ctx; ATCA_STATUS status; size_t i; + struct atcac_pk_ctx * pkey_ctx; + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + pkey_ctx = atcac_pk_ctx_new(); + TEST_ASSERT_NOT_NULL(pkey_ctx); +#else + atcac_pk_ctx_t pkey_ctx_inst; + pkey_ctx = &pkey_ctx_inst; +#endif + /* Test verification using [P-256,SHA-256] vectors */ for (i = 0; i < ecdsa_p256_test_vectors_count; i++) { @@ -69,14 +78,14 @@ TEST(atcac_pk, verify_nist) TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Initialize the key using the provided X,Y cordinantes */ - status = atcac_pk_init(&pkey_ctx, pubkey, sizeof(pubkey), 0, true); + status = atcac_pk_init(pkey_ctx, pubkey, sizeof(pubkey), 0, true); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Perform the verification */ - status = atcac_pk_verify(&pkey_ctx, digest, sizeof(digest), signature, sizeof(signature)); + status = atcac_pk_verify(pkey_ctx, digest, sizeof(digest), signature, sizeof(signature)); /* Make sure to free the key before testing the result of the verify */ - atcac_pk_free(&pkey_ctx); + atcac_pk_free(pkey_ctx); /* Check verification result against the expected success/failure */ if (ecdsa_p256_test_vectors[i].Result) @@ -88,6 +97,10 @@ TEST(atcac_pk, verify_nist) TEST_ASSERT_NOT_EQUAL(ATCA_SUCCESS, status); } } + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_pk_ctx_free(pkey_ctx); +#endif } static uint8_t private_key_pem[] = @@ -112,28 +125,41 @@ static uint8_t public_key_bytes[64] = { TEST(atcac_pk, init_public) { - atcac_pk_ctx priv_ctx; uint8_t public_key[64]; size_t public_key_size = 64; ATCA_STATUS status; + struct atcac_pk_ctx * pkey_ctx; + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + pkey_ctx = atcac_pk_ctx_new(); + TEST_ASSERT_NOT_NULL(pkey_ctx); +#else + atcac_pk_ctx_t pkey_ctx_inst; + pkey_ctx = &pkey_ctx_inst; +#endif + /* Test initialization of a private key with a pem encoded key (without password) */ - status = atcac_pk_init_pem(&priv_ctx, private_key_pem, sizeof(private_key_pem), false); + status = atcac_pk_init_pem(pkey_ctx, private_key_pem, sizeof(private_key_pem), false); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); - status = atcac_pk_public(&priv_ctx, public_key, &public_key_size); + status = atcac_pk_public(pkey_ctx, public_key, &public_key_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT_EQUAL_MEMORY(public_key_bytes, public_key, 64); - status = atcac_pk_free(&priv_ctx); + status = atcac_pk_free(pkey_ctx); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_pk_ctx_free(pkey_ctx); +#endif } TEST(atcac_pk, sign_simple) { - atcac_pk_ctx sign_ctx; - atcac_pk_ctx verify_ctx; + struct atcac_pk_ctx * sign_ctx; + struct atcac_pk_ctx * verify_ctx; uint8_t digest[32] = { 0x1A, 0x3A, 0xA5, 0x45, 0x04, 0x94, 0x53, 0xAF, 0xDF, 0x17, 0xE9, 0x89, 0xA4, 0x1F, 0xA0, 0x97, 0x94, 0xA5, 0x1B, 0xD5, 0xDB, 0x91, 0x36, 0x37, @@ -142,40 +168,69 @@ TEST(atcac_pk, sign_simple) size_t sig_size = sizeof(signature); ATCA_STATUS status; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + sign_ctx = atcac_pk_ctx_new(); + TEST_ASSERT_NOT_NULL(sign_ctx); + verify_ctx = atcac_pk_ctx_new(); + TEST_ASSERT_NOT_NULL(verify_ctx); +#else + atcac_pk_ctx_t sign_ctx_inst; + atcac_pk_ctx_t verify_ctx_inst; + sign_ctx = &sign_ctx_inst; + verify_ctx = &verify_ctx_inst; +#endif + memset(signature, 0, sig_size); /* Test initialization of a private key with a pem encoded key (without password) */ - status = atcac_pk_init_pem(&sign_ctx, private_key_pem, sizeof(private_key_pem), false); + status = atcac_pk_init_pem(sign_ctx, private_key_pem, sizeof(private_key_pem), false); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Test signing with the private key */ - status = atcac_pk_sign(&sign_ctx, digest, sizeof(digest), signature, &sig_size); + status = atcac_pk_sign(sign_ctx, digest, sizeof(digest), signature, &sig_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Test initialization of a public key with a pem encoded key */ - status = atcac_pk_init_pem(&verify_ctx, public_key_pem, sizeof(public_key_pem), true); + status = atcac_pk_init_pem(verify_ctx, public_key_pem, sizeof(public_key_pem), true); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Test verification of the siguature */ - status = atcac_pk_verify(&verify_ctx, digest, sizeof(digest), &signature[sig_size - 64], 64); + status = atcac_pk_verify(verify_ctx, digest, sizeof(digest), &signature[sig_size - 64], 64); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); signature[10] ^= signature[10]; /* Test failure to validate a corrupted signature */ - status = atcac_pk_verify(&verify_ctx, digest, sizeof(digest), &signature[sig_size - 64], 64); + status = atcac_pk_verify(verify_ctx, digest, sizeof(digest), &signature[sig_size - 64], 64); TEST_ASSERT_NOT_EQUAL(ATCA_SUCCESS, status); + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_pk_ctx_free(sign_ctx); + atcac_pk_ctx_free(verify_ctx); +#endif } TEST(atcac_pk, derive_ecdh_p256_nist) { ATCA_STATUS status; - atcac_pk_ctx pri_ctx; - atcac_pk_ctx pub_ctx; + struct atcac_pk_ctx * pri_ctx; + struct atcac_pk_ctx * pub_ctx; uint8_t result[32]; size_t result_size; size_t i; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + pri_ctx = atcac_pk_ctx_new(); + TEST_ASSERT_NOT_NULL(pri_ctx); + pub_ctx = atcac_pk_ctx_new(); + TEST_ASSERT_NOT_NULL(pub_ctx); +#else + atcac_pk_ctx_t pri_ctx_inst; + atcac_pk_ctx_t pub_ctx_inst; + pri_ctx = &pri_ctx_inst; + pub_ctx = &pub_ctx_inst; +#endif + /* Test verification using [P-256] vectors */ for (i = 0; i < ecdh_p256_test_vectors_count; i++) { @@ -184,19 +239,24 @@ TEST(atcac_pk, derive_ecdh_p256_nist) memcpy(pubkey, ecdh_p256_test_vectors[i].QCAVSx, 32); memcpy(&pubkey[32], ecdh_p256_test_vectors[i].QCAVSy, 32); - (void)atcac_pk_init(&pub_ctx, pubkey, sizeof(pubkey), 0, true); - (void)atcac_pk_init(&pri_ctx, (uint8_t*)ecdh_p256_test_vectors[i].dIUT, 32, 0, false); + (void)atcac_pk_init(pub_ctx, pubkey, sizeof(pubkey), 0, true); + (void)atcac_pk_init(pri_ctx, (uint8_t*)ecdh_p256_test_vectors[i].dIUT, 32, 0, false); result_size = sizeof(result); - status = atcac_pk_derive(&pri_ctx, &pub_ctx, result, &result_size); + status = atcac_pk_derive(pri_ctx, pub_ctx, result, &result_size); - (void)atcac_pk_free(&pri_ctx); - (void)atcac_pk_free(&pub_ctx); + (void)atcac_pk_free(pri_ctx); + (void)atcac_pk_free(pub_ctx); /* Check Test Results */ TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT_EQUAL_MEMORY(ecdh_p256_test_vectors[i].ZIUT, result, 32); } + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_pk_ctx_free(pri_ctx); + atcac_pk_ctx_free(pub_ctx); +#endif } // *INDENT-OFF* - Preserve formatting diff --git a/test/api_crypto/test_crypto_sha.c b/test/api_crypto/test_crypto_sha.c index 54f348264..38f620d2a 100644 --- a/test/api_crypto/test_crypto_sha.c +++ b/test/api_crypto/test_crypto_sha.c @@ -27,6 +27,7 @@ #include "test_crypto.h" #include "crypto/atca_crypto_sw.h" +#include "vectors/vector_utils.h" #ifndef TEST_ATCAC_SHA1_EN #define TEST_ATCAC_SHA1_EN ATCAC_SHA1_EN @@ -52,6 +53,11 @@ TEST_SETUP(atcac_sha) TEST_TEAR_DOWN(atcac_sha) { +#if defined(_WIN32) || defined(__linux__) + /* Make sure vectors get closed out */ + close_vectors_file(); +#endif + UnityMalloc_EndTest(); } @@ -96,158 +102,34 @@ TEST(atcac_sha, sha1_nist3) }; uint8_t digest[ATCA_SHA1_DIGEST_SIZE]; int ret; - atcac_sha1_ctx ctx; + struct atcac_sha1_ctx * ctx; uint32_t i; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + ctx = atcac_sha1_ctx_new(); + TEST_ASSERT_NOT_NULL(ctx); +#else + atcac_sha1_ctx_t sha1_ctx; + ctx = &sha1_ctx; +#endif + TEST_ASSERT_EQUAL(ATCA_SHA1_DIGEST_SIZE, sizeof(digest_ref)); - ret = atcac_sw_sha1_init(&ctx); + ret = atcac_sw_sha1_init(ctx); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); for (i = 0; i < 1000000; i++) { - ret = atcac_sw_sha1_update(&ctx, nist_hash_msg3, 1); + ret = atcac_sw_sha1_update(ctx, nist_hash_msg3, 1); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); } - ret = atcac_sw_sha1_finish(&ctx, digest); + ret = atcac_sw_sha1_finish(ctx, digest); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); TEST_ASSERT_EQUAL_MEMORY(digest_ref, digest, sizeof(digest_ref)); -} -#endif - -#if defined(_WIN32) || defined(__linux__) -static void hex_to_uint8(const char hex_str[2], uint8_t* num) -{ - *num = 0; - - if (hex_str[0] >= '0' && hex_str[0] <= '9') - { - *num += (hex_str[0] - '0') << 4; - } - else if (hex_str[0] >= 'A' && hex_str[0] <= 'F') - { - *num += (hex_str[0] - 'A' + 10) << 4; - } - else if (hex_str[0] >= 'a' && hex_str[0] <= 'f') - { - *num += (hex_str[0] - 'a' + 10) << 4; - } - else - { - TEST_FAIL_MESSAGE("Not a hex digit."); - } - - if (hex_str[1] >= '0' && hex_str[1] <= '9') - { - *num += (hex_str[1] - '0'); - } - else if (hex_str[1] >= 'A' && hex_str[1] <= 'F') - { - *num += (hex_str[1] - 'A' + 10); - } - else if (hex_str[1] >= 'a' && hex_str[1] <= 'f') - { - *num += (hex_str[1] - 'a' + 10); - } - else - { - TEST_FAIL_MESSAGE("Not a hex digit."); - } -} - -static void hex_to_data(const char* hex_str, uint8_t* data, size_t data_size) -{ - size_t i = 0; - TEST_ASSERT_EQUAL_MESSAGE(data_size * 2, strlen(hex_str) - 1, "Hex string unexpected length."); - - for (i = 0; i < data_size; i++) - { - hex_to_uint8(&hex_str[i * 2], &data[i]); - } -} - -static int read_rsp_hex_value(FILE* file, const char* name, uint8_t* data, size_t data_size) -{ - char line[16384]; - char* str = NULL; - size_t name_size = strlen(name); - - do - { - str = fgets(line, sizeof(line), file); - if (str == NULL) - { - continue; - } - else - { - size_t ln = strlen(line); - if (ln > 0 && line[ln - 2] == '\r') - { - line[ln - 1] = 0; - } - } - - if (memcmp(line, name, name_size) == 0) - { - str = &line[name_size]; - } - else - { - str = NULL; - } - } - while (str == NULL && !feof(file)); - if (str == NULL) - { - return ATCA_GEN_FAIL; - } - hex_to_data(str, data, data_size); - - return ATCA_SUCCESS; -} - -static int read_rsp_int_value(FILE* file, const char* name, int* value) -{ - char line[2048]; - char* str = NULL; - size_t name_size = strlen(name); - - do - { - str = fgets(line, sizeof(line), file); - if (str == NULL) - { - continue; - } - else - { - size_t ln = strlen(line); - if (ln > 0 && line[ln - 2] == '\r') - { - line[ln - 1] = 0; - } - } - - if (memcmp(line, name, name_size) == 0) - { - str = &line[name_size]; - } - else - { - str = NULL; - } - } - while (str == NULL && !feof(file)); - if (str == NULL) - { - return ATCA_GEN_FAIL; - } - *value = atoi(str); - - return ATCA_SUCCESS; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_sha1_ctx_free(ctx); +#endif } - #endif #if TEST_ATCAC_SHA1_EN @@ -270,7 +152,7 @@ static void test_atcac_sw_sha1_nist_simple(const char* filename) do { - ret = read_rsp_int_value(rsp_file, "Len = ", &len_bits); + ret = read_rsp_int_value(rsp_file, "Len = ", NULL, &len_bits); if (ret != ATCA_SUCCESS) { continue; @@ -390,21 +272,33 @@ TEST(atcac_sha, sha256_nist3) }; uint8_t digest[ATCA_SHA2_256_DIGEST_SIZE]; int ret; - atcac_sha2_256_ctx ctx; + struct atcac_sha2_256_ctx* ctx; uint32_t i; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + ctx = atcac_sha256_ctx_new(); + TEST_ASSERT_NOT_NULL(ctx); +#else + atcac_sha2_256_ctx_t sha256_ctx; + ctx = &sha256_ctx; +#endif + TEST_ASSERT_EQUAL(ATCA_SHA2_256_DIGEST_SIZE, sizeof(digest_ref)); - ret = atcac_sw_sha2_256_init(&ctx); + ret = atcac_sw_sha2_256_init(ctx); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); for (i = 0; i < 1000000; i++) { - ret = atcac_sw_sha2_256_update(&ctx, nist_hash_msg3, 1); + ret = atcac_sw_sha2_256_update(ctx, nist_hash_msg3, 1); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); } - ret = atcac_sw_sha2_256_finish(&ctx, digest); + ret = atcac_sw_sha2_256_finish(ctx, digest); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); TEST_ASSERT_EQUAL_MEMORY(digest_ref, digest, sizeof(digest_ref)); + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_sha256_ctx_free(ctx); +#endif } static void test_atcac_sw_sha2_256_nist_simple(const char* filename) @@ -426,7 +320,7 @@ static void test_atcac_sw_sha2_256_nist_simple(const char* filename) do { - ret = read_rsp_int_value(rsp_file, "Len = ", &len_bits); + ret = read_rsp_int_value(rsp_file, "Len = ", NULL, &len_bits); if (ret != ATCA_SUCCESS) { continue; @@ -508,7 +402,7 @@ TEST(atcac_sha, sha256_hmac) { ATCA_STATUS status = ATCA_GEN_FAIL; uint8_t hmac[ATCA_SHA256_DIGEST_SIZE]; - atcac_sha2_256_ctx sha256_ctx; + struct atcac_sha2_256_ctx* sha256_ctx; size_t hmac_size; uint8_t data_input[] = { 0x6f, 0xb3, 0xec, 0x66, 0xf9, 0xeb, 0x07, 0x0a, @@ -534,19 +428,36 @@ TEST(atcac_sha, sha256_hmac) 0x5d, 0x1b, 0x56, 0x9f, 0xe7, 0x05, 0xb6, 0x00, 0x06, 0xfe, 0xec, 0x14, 0x5a, 0x0d, 0xb1, 0xe3 }; - atcac_hmac_sha256_ctx ctx; + struct atcac_hmac_ctx* ctx; + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + sha256_ctx = atcac_sha256_ctx_new(); + TEST_ASSERT_NOT_NULL(sha256_ctx); + ctx = atcac_hmac_ctx_new(); + TEST_ASSERT_NOT_NULL(ctx); +#else + atcac_sha2_256_ctx_t sha256_ctx_inst; + atcac_hmac_ctx_t hmac_ctx_inst; + sha256_ctx = &sha256_ctx_inst; + ctx = &hmac_ctx_inst; +#endif - status = atcac_sha256_hmac_init(&ctx, &sha256_ctx, hmac_key, sizeof(hmac_key)); + status = atcac_sha256_hmac_init(ctx, sha256_ctx, hmac_key, sizeof(hmac_key)); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); - status = atcac_sha256_hmac_update(&ctx, data_input, sizeof(data_input)); + status = atcac_sha256_hmac_update(ctx, data_input, sizeof(data_input)); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); hmac_size = sizeof(hmac); - status = atcac_sha256_hmac_finish(&ctx, hmac, &hmac_size); + status = atcac_sha256_hmac_finish(ctx, hmac, &hmac_size); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); TEST_ASSERT_EQUAL_MEMORY(hmac_ref, hmac, ATCA_SHA256_DIGEST_SIZE); + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_hmac_ctx_free(ctx); + atcac_sha256_ctx_free(sha256_ctx); +#endif } TEST(atcac_sha, sha256_hmac_nist) @@ -564,24 +475,36 @@ TEST(atcac_sha, sha256_hmac_nist) int count = 0; int klen = 0; int tlen = 0; - atcac_hmac_sha256_ctx hmac_ctx; - atcac_sha2_256_ctx sha256_ctx; + struct atcac_hmac_ctx* hmac_ctx; + struct atcac_sha2_256_ctx* sha256_ctx; + +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + sha256_ctx = atcac_sha256_ctx_new(); + TEST_ASSERT_NOT_NULL(sha256_ctx); + hmac_ctx = atcac_hmac_ctx_new(); + TEST_ASSERT_NOT_NULL(hmac_ctx); +#else + atcac_sha2_256_ctx_t sha256_ctx_inst; + atcac_hmac_ctx_t hmac_ctx_inst; + sha256_ctx = &sha256_ctx_inst; + hmac_ctx = &hmac_ctx_inst; +#endif rsp_file = fopen("hmac_test_vectors/HMAC_sha256.rsp", "r"); TEST_ASSERT_NOT_NULL_MESSAGE(rsp_file, "Failed to open file"); do { - ret = read_rsp_int_value(rsp_file, "Count = ", &count); + ret = read_rsp_int_value(rsp_file, "Count = ", NULL, &count); if (ret) { break; } - ret = read_rsp_int_value(rsp_file, "Klen = ", &klen); + ret = read_rsp_int_value(rsp_file, "Klen = ", NULL, &klen); TEST_ASSERT_EQUAL(ret, ATCA_SUCCESS); - ret = read_rsp_int_value(rsp_file, "Tlen = ", &tlen); + ret = read_rsp_int_value(rsp_file, "Tlen = ", NULL, &tlen); TEST_ASSERT_EQUAL(ret, ATCA_SUCCESS); ret = read_rsp_hex_value(rsp_file, "Key = ", key, klen); @@ -593,19 +516,24 @@ TEST(atcac_sha, sha256_hmac_nist) ret = read_rsp_hex_value(rsp_file, "Mac = ", hmac_ref, tlen); TEST_ASSERT_EQUAL(ret, ATCA_SUCCESS); - ret = atcac_sha256_hmac_init(&hmac_ctx, &sha256_ctx, key, klen); + ret = atcac_sha256_hmac_init(hmac_ctx, sha256_ctx, key, klen); TEST_ASSERT_EQUAL(ret, ATCA_SUCCESS); - ret = atcac_sha256_hmac_update(&hmac_ctx, msg, sizeof(msg)); + ret = atcac_sha256_hmac_update(hmac_ctx, msg, sizeof(msg)); TEST_ASSERT_EQUAL(ret, ATCA_SUCCESS); - ret = atcac_sha256_hmac_finish(&hmac_ctx, hmac, &hmac_len); + ret = atcac_sha256_hmac_finish(hmac_ctx, hmac, &hmac_len); TEST_ASSERT_EQUAL(ret, ATCA_SUCCESS); TEST_ASSERT_EQUAL_MEMORY(hmac_ref, hmac, tlen); } while (ret == ATCA_SUCCESS); +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + atcac_hmac_ctx_free(hmac_ctx); + atcac_sha256_ctx_free(sha256_ctx); +#endif + #endif } #endif /* TEST_ATCAC_SHA256_EN */ diff --git a/test/atca_test.c b/test/atca_test.c index 9b53dead7..7cb97f066 100644 --- a/test/atca_test.c +++ b/test/atca_test.c @@ -122,6 +122,7 @@ t_test_case_info* otpzero_tests[] = t_test_case_info* helper_tests[] = { helper_basic_test_info, + buffer_test_info, (t_test_case_info*)NULL, /* Array Termination element*/ }; @@ -304,11 +305,54 @@ void atca_test_assert_data_is_locked(UNITY_LINE_TYPE from_line) } } +/** \brief Check to ensure that not too many instances of the same value appear in the + * buffer to make sure something came through the API. This is not an actual randomness + * qualification test but should catch most invalid conditions such as buffer misalignment, + * failing to copy, etc. + */ +void atca_test_assert_random_buffer(UNITY_LINE_TYPE from_line, uint8_t * buf, size_t buflen) +{ + uint8_t hg[256]; + size_t i; + + (void)memset(hg, 0, sizeof(hg)); + + UNITY_TEST_ASSERT_NOT_NULL(buf, from_line, NULL); + + for (i = 0; i < buflen; i++) + { + hg[buf[i]]++; + } + +#ifdef ATCA_PRINTF + size_t printed = 0; + printf("\n"); + for (i = 0; i < sizeof(hg); i++) + { + if (0 < hg[i]) + { + printf("%3d: %d, ", i, hg[i]); + printed++; + if (0 == printed % 8) + { + printf("\n"); + } + } + } + printf("\n"); +#endif + + for (i = 0; i < sizeof(hg); i++) + { + UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT(buflen / 4 ? buflen / 4 : 1, hg[i], from_line, + "Buffer has a significant count of the same value"); + } +} //The Function checks the AES_ENABLE byte in configuration zone , if it is not set, it skips the test void atca_test_assert_aes_enabled(UNITY_LINE_TYPE from_line) { - if (TA100 != gCfg->devtype) + if (!atcab_is_ta_device(gCfg->devtype)) { ATCA_STATUS status; uint8_t aes_enable; @@ -328,15 +372,15 @@ void atca_test_assert_aes_enabled(UNITY_LINE_TYPE from_line) //The Function checks the Secureboot mode byte in configuration zone , if it is not set, it skips the test void atca_test_assert_ta_sboot_enabled(UNITY_LINE_TYPE from_line, uint8_t mode) { - if (TA100 == gCfg->devtype) + if (atcab_is_ta_device(gCfg->devtype)) { ATCA_STATUS status; uint8_t check_config_sboot_enable[8]; uint16_t config_size = sizeof(check_config_sboot_enable); + cal_buffer check_config_sboot_enable_buf = CAL_BUF_INIT(config_size, check_config_sboot_enable); // Bytes 32 of the config zone contains the Secure boot config bit - status = talib_read_partial_element(atcab_get_device(), TA_HANDLE_CONFIG_MEMORY, 32, &config_size, - &check_config_sboot_enable[0]); + status = talib_read_partial_element(atcab_get_device(), TA_HANDLE_CONFIG_MEMORY, 32, &check_config_sboot_enable_buf); UNITY_TEST_ASSERT_EQUAL_INT(ATCA_SUCCESS, status, from_line, NULL); if ((check_config_sboot_enable[0] & TA_SECUREBOOT_CONFIG_MODE_MASK) != mode) @@ -349,15 +393,15 @@ void atca_test_assert_ta_sboot_enabled(UNITY_LINE_TYPE from_line, uint8_t mode) //The Function checks the Secureboot preboot mode byte in configuration zone , if it is not set, it skips the test void atca_test_assert_ta_sboot_preboot_enabled(UNITY_LINE_TYPE from_line) { - if (TA100 == gCfg->devtype) + if (atcab_is_ta_device(gCfg->devtype)) { ATCA_STATUS status; uint8_t check_config_sboot_enable[8]; uint16_t config_size = sizeof(check_config_sboot_enable); + cal_buffer check_config_sboot_enable_buf = CAL_BUF_INIT(config_size, check_config_sboot_enable); // Bytes 32 of the config zone contains the Secure boot config bit - status = talib_read_partial_element(atcab_get_device(), TA_HANDLE_CONFIG_MEMORY, 32, &config_size, - &check_config_sboot_enable[0]); + status = talib_read_partial_element(atcab_get_device(), TA_HANDLE_CONFIG_MEMORY, 32, &check_config_sboot_enable_buf); UNITY_TEST_ASSERT_EQUAL_INT(ATCA_SUCCESS, status, from_line, NULL); if ((check_config_sboot_enable[1] & TA_SECUREBOOT_CONFIG_PREBOOT_ENABLE_MASK) @@ -408,6 +452,7 @@ ATCA_STATUS atca_test_config_get_id(uint8_t test_type, uint16_t* handle) break; #endif default: + status = ATCA_UNIMPLEMENTED; break; } } @@ -423,7 +468,7 @@ ATCA_STATUS atca_test_config_get_id(uint8_t test_type, uint16_t* handle) /* Helper function to execute genkey and retry if there are failures since there is a chance that the genkey will fail to produce a valid keypair and a retry is nearly always successful */ -#if defined(ATCA_ECC_SUPPORT) || defined(ATCA_ECC204_SUPPORT) || defined(ATCA_TA010_SUPPORT) || defined(ATCA_TA100_SUPPORT) +#if defined(ATCA_ECC_SUPPORT) || defined(ATCA_ECC204_SUPPORT) || defined(ATCA_TA010_SUPPORT) || ATCA_TA_SUPPORT ATCA_STATUS atca_test_genkey(uint16_t key_id, uint8_t *public_key) { int attempts = 2; diff --git a/test/atca_test.h b/test/atca_test.h index e28234adc..4eab04044 100644 --- a/test/atca_test.h +++ b/test/atca_test.h @@ -107,6 +107,7 @@ void RunAllTests(t_test_case_info** tests_list); int run_test(int argc, char* argv[], void (*fptest)(void)); void run_all_talib_tests(void); +extern t_test_case_info buffer_test_info[]; extern t_test_case_info helper_basic_test_info[]; extern t_test_case_info otpzero_basic_test_info[]; @@ -140,7 +141,7 @@ extern const uint8_t test_sha104_configdata[ATCA_CA2_CONFIG_SIZE]; extern const uint8_t test_sha105_configdata[ATCA_CA2_CONFIG_SIZE]; #endif #if ATCA_TA_SUPPORT -extern const uint8_t test_ta100_configdata[TA_CONFIG_SIZE]; +extern const uint8_t test_ta10x_configdata[TA_CONFIG_SIZE]; #endif bool atca_test_already_exiting(void); @@ -150,6 +151,7 @@ void atca_test_assert_config_is_unlocked(UNITY_LINE_TYPE from_line); void atca_test_assert_config_is_locked(UNITY_LINE_TYPE from_line); void atca_test_assert_data_is_unlocked(UNITY_LINE_TYPE from_line); void atca_test_assert_data_is_locked(UNITY_LINE_TYPE from_line); +void atca_test_assert_random_buffer(UNITY_LINE_TYPE from_line, uint8_t * buf, size_t buflen); void atca_test_assert_aes_enabled(UNITY_LINE_TYPE from_line); #if ATCA_TA_SUPPORT void atca_test_assert_ta_sboot_enabled(UNITY_LINE_TYPE from_line, uint8_t mode); @@ -165,6 +167,7 @@ void atca_test_assert_ta_sboot_preboot_enabled(UNITY_LINE_TYPE from_line); #define test_assert_config_is_locked() atca_test_assert_config_is_locked(__LINE__) #define test_assert_data_is_unlocked() atca_test_assert_data_is_unlocked(__LINE__) #define test_assert_data_is_locked() atca_test_assert_data_is_locked(__LINE__) +#define test_assert_random_buffer(buf, len) atca_test_assert_random_buffer(__LINE__, buf, len) #define check_config_aes_enable() atca_test_assert_aes_enabled(__LINE__) #define check_config_ta_sboot_enable(mode) atca_test_assert_ta_sboot_enabled(__LINE__, mode) @@ -204,7 +207,7 @@ void RunPbkdf2Tests(void); /* Setup & Configuration */ void atca_test_config_set_ifacecfg(ATCAIfaceCfg * ifacecfg); -#if defined(ATCA_ECC_SUPPORT) || defined(ATCA_ECC204_SUPPORT) || defined(ATCA_TA010_SUPPORT) || defined(ATCA_TA100_SUPPORT) +#if defined(ATCA_ECC_SUPPORT) || defined(ATCA_ECC204_SUPPORT) || defined(ATCA_TA010_SUPPORT) || ATCA_TA_SUPPORT ATCA_STATUS atca_test_genkey(uint16_t key_id, uint8_t *public_key); #endif ATCADeviceType atca_test_get_device_type(void); @@ -249,7 +252,7 @@ int run_wpc_tests(int argc, char* argv[]); ATCA_STATUS check_clock_divider(int argc, char* argv[]); -#ifdef _WIN32 +#if defined(_WIN32) || defined(__linux__) void hex_to_data(const char* hex_str, uint8_t* data, size_t data_size); #endif diff --git a/test/atca_test_config.c b/test/atca_test_config.c index 7da168ed4..937fc9448 100644 --- a/test/atca_test_config.c +++ b/test/atca_test_config.c @@ -123,7 +123,7 @@ bool atca_test_cond_ecc608(void) /** \brief Configured device is TA100 */ bool atca_test_cond_ta100(void) { - return TA100 == atca_test_get_device_type(); + return atcab_is_ta_device(atca_test_get_device_type()); } /** \brief Configured device supports all EC p256 operations @@ -136,7 +136,7 @@ bool atca_test_cond_p256_all(void) return (ATECC108A == dev_type) || (ATECC508A == dev_type) || (ATECC608 == dev_type) - || (TA100 == dev_type); + || atcab_is_ta_device(dev_type); } /** \brief Configured device supports EC p256 sign operations @@ -151,7 +151,7 @@ bool atca_test_cond_p256_sign(void) || (ATECC608 == dev_type) || (ECC204 == dev_type) || (TA010 == dev_type) - || (TA100 == dev_type); + || atcab_is_ta_device(dev_type); } /** \brief Configured device supports EC p256 sign & verify operations */ @@ -162,7 +162,7 @@ bool atca_test_cond_p256_sign_verify(void) return (ATECC108A == dev_type) || (ATECC508A == dev_type) || (ATECC608 == dev_type) - || (TA100 == dev_type); + || atcab_is_ta_device(dev_type); } /** \brief Configured device supports AES128 ECB operations */ @@ -170,7 +170,7 @@ bool atca_test_cond_aes128_ecb(void) { ATCADeviceType dev_type = atca_test_get_device_type(); - return (ATECC608 == dev_type) || (TA100 == dev_type); + return (ATECC608 == dev_type) || atcab_is_ta_device(dev_type); } /** \brief Configured device is a second generation cryptoauth part */ diff --git a/test/atca_test_console.c b/test/atca_test_console.c index 2eaf4d019..462e9c021 100644 --- a/test/atca_test_console.c +++ b/test/atca_test_console.c @@ -467,8 +467,8 @@ int run_all_tests(int argc, char* argv[]) return status; } -#ifdef ATCA_TA100_SUPPORT - if (TA100 == gCfg->devtype) +#if ATCA_TA_SUPPORT + if (atcab_is_ta_device(gCfg->devtype)) { (void)talib_configure_device(0, NULL); } diff --git a/test/cmd-processor.c b/test/cmd-processor.c index da954658c..80b9ca4f4 100644 --- a/test/cmd-processor.c +++ b/test/cmd-processor.c @@ -147,7 +147,9 @@ static t_menu_info mas_menu_info[] = { "handles", "Print info for stored handles in TA100 device", talib_config_print_handles }, { "clear", "Delete Handles", talib_config_clear_handles }, { "talib", "Run talib tests", run_talib_tests }, +#ifdef TALIB_FCE_SUPPORT { "fce", "Run FCE test", talib_fce_cmd }, +#endif { "power", "Change device power state", talib_power_cmd }, #endif #if defined(_WIN32) || defined(__linux__) || defined(__APPLE__) diff --git a/test/integration/test_mbedtls.c b/test/integration/test_mbedtls.c index 26f935c51..88d22d8f1 100644 --- a/test/integration/test_mbedtls.c +++ b/test/integration/test_mbedtls.c @@ -27,6 +27,7 @@ */ #include "atca_test.h" +#include "cal_internal.h" #if defined(ATCA_MBEDTLS) && defined(MBEDTLS_ECDSA_C) #include "third_party/atca_mbedtls_patch.h" @@ -67,7 +68,7 @@ TEST(mbedtls_ecdsa, verify_nist) uint8_t pubkey[64]; uint8_t signature[74]; uint8_t digest[32]; - atcac_pk_ctx pkey_ctx; + atcac_pk_ctx_t pkey_ctx; int status; size_t i; mbedtls_mpi r; @@ -106,7 +107,7 @@ TEST(mbedtls_ecdsa, verify_nist) TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Perform the verification */ - status = mbedtls_pk_verify(&pkey_ctx, MBEDTLS_MD_SHA256, digest, sizeof(digest), signature, sig_len); + status = mbedtls_pk_verify((mbedtls_pk_context*)&pkey_ctx, MBEDTLS_MD_SHA256, digest, sizeof(digest), signature, sig_len); /* Make sure to free the key before testing the result of the verify */ atcac_pk_free(&pkey_ctx); @@ -130,7 +131,7 @@ TEST(mbedtls_ecdsa, verify_nist_stored_key) uint8_t pubkey[64]; uint8_t signature[74]; uint8_t digest[32]; - atcac_pk_ctx pkey_ctx; + mbedtls_pk_context pkey_ctx; ATCA_STATUS status; mbedtls_mpi r; mbedtls_mpi s; @@ -179,7 +180,7 @@ TEST(mbedtls_ecdsa, verify_nist_stored_key) status = mbedtls_pk_verify(&pkey_ctx, MBEDTLS_MD_SHA256, digest, sizeof(digest), signature, sig_len); /* Make sure to free the key before testing the result of the verify */ - atcac_pk_free(&pkey_ctx); + mbedtls_pk_free(&pkey_ctx); /* Check verification result against the expected success/failure */ if (ecdsa_p256_test_vectors[i].Result) @@ -199,7 +200,7 @@ TEST(mbedtls_ecdsa, verify_nist_stored_key) TEST(mbedtls_ecdsa, sign_stored_key) { int status; - atcac_pk_ctx pkey_ctx; + atcac_pk_ctx_t pkey_ctx; uint8_t digest[32]; uint8_t signature[74] = { 0 }; size_t sig_len = sizeof(signature); @@ -208,14 +209,14 @@ TEST(mbedtls_ecdsa, sign_stored_key) status = atca_test_config_get_id(TEST_TYPE_ECC_SIGN, &key_slot); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); - status = atca_mbedtls_pk_init(&pkey_ctx, key_slot); + status = atca_mbedtls_pk_init((mbedtls_pk_context*)&pkey_ctx, key_slot); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); - status = mbedtls_pk_sign(&pkey_ctx, MBEDTLS_MD_SHA256, digest, sizeof(digest), signature, &sig_len, NULL, NULL); + status = mbedtls_pk_sign((mbedtls_pk_context*)&pkey_ctx, MBEDTLS_MD_SHA256, digest, sizeof(digest), signature, &sig_len, NULL, NULL); TEST_ASSERT_EQUAL(ATCA_SUCCESS, status); /* Perform the verification */ - status = mbedtls_pk_verify(&pkey_ctx, MBEDTLS_MD_SHA256, digest, sizeof(digest), signature, sig_len); + status = mbedtls_pk_verify((mbedtls_pk_context*)&pkey_ctx, MBEDTLS_MD_SHA256, digest, sizeof(digest), signature, sig_len); /* Make sure to free the key before testing the result of the verify */ atcac_pk_free(&pkey_ctx); @@ -226,9 +227,9 @@ TEST(mbedtls_ecdsa, sign_stored_key) t_test_case_info mbedtls_ecdsa_test_info[] = { - { REGISTER_TEST_CASE(mbedtls_ecdsa, verify_nist), atca_test_cond_p256_sign_verify }, - { REGISTER_TEST_CASE(mbedtls_ecdsa, verify_nist_stored_key), atca_test_cond_p256_sign_verify }, - { REGISTER_TEST_CASE(mbedtls_ecdsa, sign_stored_key), atca_test_cond_p256_sign_verify }, + { REGISTER_TEST_CASE(mbedtls_ecdsa, verify_nist), atca_test_cond_p256_sign_verify }, + { REGISTER_TEST_CASE(mbedtls_ecdsa, verify_nist_stored_key), atca_test_cond_p256_sign_verify }, + { REGISTER_TEST_CASE(mbedtls_ecdsa, sign_stored_key), atca_test_cond_p256_sign_verify }, /* Array Termination element*/ { (fp_test_case)NULL, NULL }, }; diff --git a/test/tng/tng_atcacert_client_test.c b/test/tng/tng_atcacert_client_test.c index 715244a59..956fd0bfd 100644 --- a/test/tng/tng_atcacert_client_test.c +++ b/test/tng/tng_atcacert_client_test.c @@ -144,14 +144,20 @@ TEST(tng_atcacert_client, tng_atcacert_read_signer_cert) TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); #if ATCA_HOSTLIB_EN - atcac_pk_ctx pkey_ctx; - ret = atcac_pk_init(&pkey_ctx, ca_public_key, sizeof(ca_public_key), 0, true); + struct atcac_pk_ctx * pkey_ctx; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + pkey_ctx = atcac_pk_ctx_new(); +#else + atcac_pk_ctx_t pkey_ctx_inst; + pkey_ctx = &pkey_ctx_inst; +#endif + ret = atcac_pk_init(pkey_ctx, ca_public_key, sizeof(ca_public_key), 0, true); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); - ret = atcac_pk_verify(&pkey_ctx, tbs_digest, sizeof(tbs_digest), signature, sizeof(signature)); + ret = atcac_pk_verify(pkey_ctx, tbs_digest, sizeof(tbs_digest), signature, sizeof(signature)); /* Make sure to free the key before testing the result of the verify */ - atcac_pk_free(&pkey_ctx); + atcac_pk_free(pkey_ctx); /* Check verification result */ TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); @@ -161,6 +167,13 @@ TEST(tng_atcacert_client, tng_atcacert_read_signer_cert) TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); TEST_ASSERT(is_verified); #endif + +#if ATCA_HOSTLIB_EN && (defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP)) + if (NULL != pkey_ctx) + { + atcac_pk_ctx_free(pkey_ctx); + } +#endif } TEST(tng_atcacert_client, tng_atcacert_signer_public_key_no_cert) @@ -269,14 +282,20 @@ TEST(tng_atcacert_client, tng_atcacert_read_device_cert_no_signer) TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); #if ATCA_HOSTLIB_EN - atcac_pk_ctx pkey_ctx; - ret = atcac_pk_init(&pkey_ctx, ca_public_key, sizeof(ca_public_key), 0, true); + struct atcac_pk_ctx * pkey_ctx; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + pkey_ctx = atcac_pk_ctx_new(); +#else + atcac_pk_ctx_t pkey_ctx_inst; + pkey_ctx = &pkey_ctx_inst; +#endif + ret = atcac_pk_init(pkey_ctx, ca_public_key, sizeof(ca_public_key), 0, true); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); - ret = atcac_pk_verify(&pkey_ctx, tbs_digest, sizeof(tbs_digest), signature, sizeof(signature)); + ret = atcac_pk_verify(pkey_ctx, tbs_digest, sizeof(tbs_digest), signature, sizeof(signature)); /* Make sure to free the key before testing the result of the verify */ - atcac_pk_free(&pkey_ctx); + atcac_pk_free(pkey_ctx); /* Check verification result */ TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); @@ -286,6 +305,13 @@ TEST(tng_atcacert_client, tng_atcacert_read_device_cert_no_signer) TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); TEST_ASSERT(is_verified); #endif + +#if ATCA_HOSTLIB_EN && (defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP)) + if (NULL != pkey_ctx) + { + atcac_pk_ctx_free(pkey_ctx); + } +#endif } TEST(tng_atcacert_client, tng_atcacert_read_device_cert_signer) @@ -335,14 +361,20 @@ TEST(tng_atcacert_client, tng_atcacert_read_device_cert_signer) TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); #if ATCA_HOSTLIB_EN - atcac_pk_ctx pkey_ctx; - ret = atcac_pk_init(&pkey_ctx, ca_public_key, sizeof(ca_public_key), 0, true); + struct atcac_pk_ctx * pkey_ctx; +#if defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP) + pkey_ctx = atcac_pk_ctx_new(); +#else + atcac_pk_ctx_t pkey_ctx_inst; + pkey_ctx = &pkey_ctx_inst; +#endif + ret = atcac_pk_init(pkey_ctx, ca_public_key, sizeof(ca_public_key), 0, true); TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); - ret = atcac_pk_verify(&pkey_ctx, tbs_digest, sizeof(tbs_digest), signature, sizeof(signature)); + ret = atcac_pk_verify(pkey_ctx, tbs_digest, sizeof(tbs_digest), signature, sizeof(signature)); /* Make sure to free the key before testing the result of the verify */ - atcac_pk_free(&pkey_ctx); + atcac_pk_free(pkey_ctx); /* Check verification result */ TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); @@ -352,6 +384,13 @@ TEST(tng_atcacert_client, tng_atcacert_read_device_cert_signer) TEST_ASSERT_EQUAL(ATCA_SUCCESS, ret); TEST_ASSERT(is_verified); #endif +#if ATCA_HOSTLIB_EN && (defined(ATCA_BUILD_SHARED_LIBS) || !defined(ATCA_NO_HEAP)) + if (NULL != pkey_ctx) + { + atcac_pk_ctx_free(pkey_ctx); + } +#endif + } TEST(tng_atcacert_client, tng_atcacert_device_public_key_no_cert) diff --git a/test/vectors/aes_cmac_vectors/CMACGenAES128.rsp b/test/vectors/aes_cmac_vectors/CMACGenAES128.rsp new file mode 100644 index 000000000..667a02c2d --- /dev/null +++ b/test/vectors/aes_cmac_vectors/CMACGenAES128.rsp @@ -0,0 +1,724 @@ +# CAVS 11.0 +# CMACGen information +# Algorithms tested:Alg = AES KeySize = 128 Mode = Generate +# Generated on Tue Mar 15 08:40:32 2011 + + +Count = 0 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = e4b7645b2f7d63b4674cd01970c9d1ec +Msg = 00 +Mac = f266a187 + + +Count = 1 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = 8eeca0d146fd09ffbbe0d47edcddfcec +Msg = 00 +Mac = c3642ce5 + + +Count = 2 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = 5cb7bc9c9e63a6593c4fce571f510a28 +Msg = 00 +Mac = de4e9727 + + +Count = 3 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = bb3180eb531415b88bc82352b5a8a88c +Msg = 00 +Mac = 9f0ee665 + + +Count = 4 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = 756025761538bb9b308151cefd2b60b1 +Msg = 00 +Mac = 4768148a + + +Count = 5 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = 0020c4fe4f1295db0b21dfd7c3314718 +Msg = 00 +Mac = 5dabe0b7 + + +Count = 6 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = 81689a41c5406817caddcc79371cc1c9 +Msg = 00 +Mac = 06052c57 + + +Count = 7 +Klen = 16 +Mlen = 0 +Tlen = 4 +Key = c498e1aa90902b7b55d3e7f227fadc13 +Msg = 00 +Mac = a1298d31 + + +Count = 8 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = 553421ad3f584d9f4cce5a6d3f184e57 +Msg = 00 +Mac = 995a02bdca8a07002ce58cd7505faa + + +Count = 9 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = e6e1cf16fe3f00ddd962be75e01c5f66 +Msg = 00 +Mac = a479258c00fcc3062aa283a27b1f2b + + +Count = 10 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = f2f7be13829e01e4876d3d7541305d1a +Msg = 00 +Mac = f4b5861154181a9115fa36fdc4469d + + +Count = 11 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = f65ea9718e8b8ec6c776456f9dbe4912 +Msg = 00 +Mac = cd9971df4de72a33c7146a62b2b4ee + + +Count = 12 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = 134e27b1c4a42bd11eaa174e21767c08 +Msg = 00 +Mac = 3f00d8d6f145a375d086c48f5dfa0b + + +Count = 13 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = 0c7c530c1781178987c3dcd70162123a +Msg = 00 +Mac = febaa6b8bc93ed413f850ec798be93 + + +Count = 14 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = 67ceeb8cef62e2c61d7fd64ea0e70e99 +Msg = 00 +Mac = c377279e88e463d1e9277314e10af3 + + +Count = 15 +Klen = 16 +Mlen = 0 +Tlen = 15 +Key = aba13f15f1f4194c3f71a9ce6442bc44 +Msg = 00 +Mac = 98cb784e3170c362f2fcca2a4808eb + + +Count = 16 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = e380798d0575d1269cc8caa231354437 +Msg = 66eae0eabd624a7ecc11e9db462e2b86 +Mac = 9f19065a + + +Count = 17 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = e1dc724d5621fdde4a8c276005d61575 +Msg = 879855ff5196862cc77e323f8c76b5b0 +Mac = d1c2a70e + + +Count = 18 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = 561052ade555eeda9cb38b1cca8d118c +Msg = 79fc4d3a8a47385db73e19a5572a2741 +Mac = 1ec924eb + + +Count = 19 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = 195e059e5710e652744fa6dbbd04190d +Msg = 16bdf18c09d60f3a2a32fbb24e64d033 +Mac = 5cfd2c86 + + +Count = 20 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = 89bdd94dcf1c69d8baf4500e9145247f +Msg = c5335420e11c23559835604bf2b6719e +Mac = ccfe259f + + +Count = 21 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = 4277cd9baf2cf393c81cb7d88b5ba15e +Msg = 372aaefeac3785bed8a895a42313ab9a +Mac = 0d736ca4 + + +Count = 22 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = 27fa0d5e45b2f4c20bc4ca564c4e8c34 +Msg = 7353e93033d56117d52cdf505086ae8c +Mac = d6bc6ee7 + + +Count = 23 +Klen = 16 +Mlen = 16 +Tlen = 4 +Key = 8f75b1a872f6f3d06bf47af415f0d630 +Msg = f6b1cf75b5cfa4ab323cf04ff13b7a59 +Mac = c0a303be + + +Count = 24 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = 6708c9887b847084f123d3dd9c3a8136 +Msg = a8de55170c6dc0d80de32f508bf49b70 +Mac = cfef9b7839841fdbccbb6c2cf238f7 + + +Count = 25 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = e39c6ff1ad22793dc525d34e7d7e7d6d +Msg = f23877b77471c80dd565ece7b2ca0bdd +Mac = 1a5c33d54e6de6d9fa61cb9636053f + + +Count = 26 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = 5fcad38ae778394912f8f1b8413cf773 +Msg = 07185502bf6d275c84e3ac4f5f77c3d4 +Mac = fd44fbc0dd9719e8b569ff10421df4 + + +Count = 27 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = f084010adc52224b72c562fa57842305 +Msg = 539f95998aad8d839476c66393dca1e6 +Mac = 9c0825b0d256a5cff17a05b5385cba + + +Count = 28 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = f2991112c2cbd3038ae37b772a509069 +Msg = dd63206f9db2c11a327538be6e820a97 +Mac = 98c5cf3c917216d645f02d7bb8d809 + + +Count = 29 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = f7f922c86706277a4e98d28e1197413b +Msg = 33ce44bdb1ea6fffe5a29004e2cbf66c +Mac = b8768355644df5a9fdff2def763f63 + + +Count = 30 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = 26ef8b4034117d9ebec0c7fc31085469 +Msg = 189049effd7cf9c8f35965bcb0978fd4 +Mac = 295f2f71fc58e6f63d32654c6623c5 + + +Count = 31 +Klen = 16 +Mlen = 16 +Tlen = 15 +Key = fd60ce34a65278f65b7d53904da42775 +Msg = cc1a837f5136656e04df65c0565217cc +Mac = d76f70b0979a7659043586a3d2f9d1 + + +Count = 32 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 77a77faf290c1fa30c683df16ba7a77b +Msg = 020683e1f0392f4cac54318b6029259e9c553dbc4b6ad998e64d58e4e7dc2e13 +Mac = fbfea41b + + +Count = 33 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 6533780fc328a88d605268d62f295dc6 +Msg = 02749f4f9ad82fa7ba41d935a6f1aa6376b30b8775b6445ac89b3eac50cd8d56 +Mac = 0bfa134a + + +Count = 34 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 492dacdcb4a35fc438a6eaa35e26d2f6 +Msg = 992c3e5613ff420fd91be878d0e1d62e71f5f1106f5023f399915c980394d6db +Mac = b0581ed0 + + +Count = 35 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 2bb22a8b3c1b5afa34a990f89998a742 +Msg = 25560cfd1e4cc153fe483bdac80dc11012adaa3d144d1456ff2cd92190e2bf9a +Mac = 9ebff540 + + +Count = 36 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 30b49320a9722069409539d6111df002 +Msg = 9d66d2ab77fed672e3af1fc4a77cb2610cd54ce3d7bdf6ff7b2cd8088db252b4 +Mac = 736b240a + + +Count = 37 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 5fd754a11d6b6f0de531fff2b68012f5 +Msg = 7cc7cb01cc966c3ef8a5bd0c911be24cfc919a150d5d730fd8173a1cc356b63e +Mac = 1019ca65 + + +Count = 38 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 947b01b10a37b51c704ae87ea0fb59e5 +Msg = 43e1f6daf8b1f8becde9676b1565403bd4e3d8821809cab88caa34da4a45230d +Mac = d3612b36 + + +Count = 39 +Klen = 16 +Mlen = 32 +Tlen = 4 +Key = 365df14977f556d6dde65f6670a30518 +Msg = 1b4e4c7f91c698bfa7470fad1d6092fcefed1d022a9a415effa2d4dd16dde79f +Mac = 644ec802 + + +Count = 40 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = 534c6f8f88bc353faee52664995d5457 +Msg = 4981c51fcc0935f619ec6bf862683b0025cc48724839bc1e67aa3c686d321ba6 +Mac = 6377c6cfe8dd605ef0a62a845ab3f7 + + +Count = 41 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = a17c96faa64ccab2c45d93a063893681 +Msg = f268c7d4df159ef4d284be92429b80726ef134734eebb9ccc9254c9628139e8b +Mac = b73dfe7c491b2d692e170481971e4e + + +Count = 42 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = c5581d40b331e24003901bd6bf244aca +Msg = 5d44bac1a388eb81b0c3571f6d0566b69bdef5ff21664b73a4804eb05960f61e +Mac = a1447d0b0b0283249e766f838db9f4 + + +Count = 43 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = c851f8ec4baf6e1b4562ae917f235df1 +Msg = 62e97075c81ce3367a652b38268c7f27d837788812b3c59d1ef12188a3cf82b2 +Mac = 457ad0ade82dfcc8419fdd49f988a0 + + +Count = 44 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = e4abe343f98a2df09413c3defb85b56a +Msg = f799876d19ac1b849a1a43fe9912bcaf6e1e3896ea58bcb2dfdc4716e379b440 +Mac = e08428dbbc13ff9432048c0ad95731 + + +Count = 45 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = 30d276dedfa5a69520e60f12be0be213 +Msg = e12ca51c429ed7343367e509f692448ad31a923268f2842e414820bea80b2cdd +Mac = dc94042e5f57241361de8b97ff3d4c + + +Count = 46 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = c74a5d4265f9f3d5f1c870e377625f1b +Msg = 314e0c7d5c9afb7c4282bc132bf805749554614c865526eb2062a7a57616ac78 +Mac = 86f7e503ffe55c187d7fc0e00f7b01 + + +Count = 47 +Klen = 16 +Mlen = 32 +Tlen = 15 +Key = c595ee7655c8eeecd3e8fbbbc439dbe2 +Msg = 39fb12288a67f15fa4191d597c834dc0a049a4fc6ca686b1810ca988730a6f33 +Mac = 8398e6153ba580cf3c42054bcdda2f + + +Count = 48 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = 499db5a3ecc83d34fd885fde06931097 +Msg = f2783540c9e1706ee3e7a43e71833987bb72441c1e2eab58501c8bfaec07d6332a +Mac = 8e9649db + + +Count = 49 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = a586d92bc5f946ce58080322045083d6 +Msg = 1295c5bd2d076b187277a02d57912d2e9e2771903182600351f6cca7efb9e47d5a +Mac = 6e554464 + + +Count = 50 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = 52573c65508869db3259cf5ecb627565 +Msg = b11a4c2155d379d1dfa3fcb432f65cc5acc487ca4b1d17871406d331b583792569 +Mac = 2e8b8844 + + +Count = 51 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = 30e3ea2476b2d889fc3f1565f00ee47f +Msg = 255312e95b96e3eb369e3adebd2f5b40835aa058c147271da732c855f4b44afac5 +Mac = 244ad8ad + + +Count = 52 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = db814ed9d5b683ff55a0c95de62bae5c +Msg = c1093518efd80245e3c42371f220b21f2034e6738fe02ef43e828190f01aefe169 +Mac = 397a193e + + +Count = 53 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = 478a9fb5a3b3aa4327e03d7de4a8244c +Msg = cbc2bce02e45704c925f88105ef13236c768f5b3399239e2f9b00a3108cc191b4a +Mac = b0ac1e74 + + +Count = 54 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = a8e1484b4734fc6790cd1c87eeb59ca2 +Msg = 692e47f5701bb2569fd9dde7f8eb8d670c336be77865acdcb0bcf173fbec6c24bf +Mac = 99e0224d + + +Count = 55 +Klen = 16 +Mlen = 33 +Tlen = 4 +Key = 4b03f1935c21e6083ef72d1f7bfc2e2a +Msg = 32579b66327335100d9bd236e37e3b0d681354784274a17cb2ef0af4775adb86ef +Mac = a5a7c8c9 + + +Count = 56 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = a0c334ff3501c99a9d5f2660f4a2cc5f +Msg = b4693a2aa11cf9a5442f08dfa718590feff8d38fdf15f8ee9d8ac541b93dd9b96b +Mac = 6d4bf50d3a13a26d9dc7566dee1223 + + +Count = 57 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = d26533a760e76dfaa4a7c9529df86031 +Msg = 80f3ea04e42d4cef334c04c7eaae86832faf52f2aa286b5a96360b60183d9527cf +Mac = ecee84f81924ee3c20829e3d97ebf9 + + +Count = 58 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = c2ca6ace8b8b19314cc14390e22cbc37 +Msg = 8a782e7b7c2ea77f63ddaa8563ed90d3b57c8c2242a6dd00710448733d72c6df8a +Mac = 771a53ea364973cc5c0177db250ac7 + + +Count = 59 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = 363d0f98f61d5268f12a73680fb94a98 +Msg = 2e4d583513c6b8f479f161b442b7eeb87988591e939462b5f53e350eb7cd47d6a8 +Mac = b52dad0e62d1b05fd23934c2e9c0d0 + + +Count = 60 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = a60269f095ad3c3bafae907c6f215de0 +Msg = cead1c5af16ca89bc0821775f8cba8c25620a03dfd27d6f1186f75f1c0bcfe4a20 +Mac = 172084c3fe99fde4af29aa8e6e5fe1 + + +Count = 61 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = ebf0b3e3199a5c3773c761c725c7600a +Msg = 825b192f69fb73b2716fb35e69d9c09006a8a2422ac7e4e065143c58bd146e71aa +Mac = 77742a4c6087c170beefc8a41d4f63 + + +Count = 62 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = c9def036a29354c9eee018b3cbbc712a +Msg = 3a871632f22818bfd717b00618572936f4ba57e57d9c7a609cd0663f56dbe13d4d +Mac = bf51db9d0471613c4d9275e972586f + + +Count = 63 +Klen = 16 +Mlen = 33 +Tlen = 15 +Key = 644cbf12859df0557ea91f08e051ff27 +Msg = e2b4b6f9484402645c47809ed5a83a17b378cf85224174d9a097397162f18e8ff4 +Mac = 4e6ec56ff95d0eae1cf83efcf44beb + + +Count = 64 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = 8c9eabe871c6e9511194b48ebf9e9b03 +Msg = 0549eaeca4f397247f1d259612e6867e7d788c71d03c5136864ad6d84f24eaf913a34e6933 +Mac = 0c1e97d0 + + +Count = 65 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = dd42449da4c95e858b796085b6b5b3b5 +Msg = 4da6feba6d119b8850bed945f57adcd3c3e84f85d581553b95dac3ce8c258cae78fb7dc99f +Mac = afa8c401 + + +Count = 66 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = e2d592cb412e65f9044257d78e7491f9 +Msg = 512cd890e461adea7fceebe7a93067d20ed150ee75afc2b9f2da97715d1e81d802e256359a +Mac = 35b21ee1 + + +Count = 67 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = 46f02659f08ad03125f3bb40cacd0fda +Msg = eb2e7e32589486aa849437c8dbbd713b60d76fa34123f9f6afe4db23ec1d97f6a69d573c83 +Mac = 2313fdbe + + +Count = 68 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = 42c7fa8a13ba2d0f6c3760bcd4fa6cd5 +Msg = 11c90809f9c53d2f77b56af0a42287ac6920e3d2921cceb824d496caf1a7b6e7690f4908b3 +Mac = 0930b0aa + + +Count = 69 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = 49db86d2b3b1088053164aa464a78566 +Msg = dc787b2386fcae8b8c6d0c9d0c092aaedadd31500d37846bbe5fa3900c82508963eff035ff +Mac = 63744714 + + +Count = 70 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = cb30d16d4ff5d0cd5b8c1cf6fc9b535d +Msg = 2e523e9d8a5532127ec63b220838f11b0f8a09e9a317c1e4872d7fececc1b4b88060076ba7 +Mac = 121c667a + + +Count = 71 +Klen = 16 +Mlen = 37 +Tlen = 4 +Key = 467e1d9893123320dadc3a23c961ec81 +Msg = 162ff9478ca06aebfc7f86afa9cdd743916563ebfd3adbdd56e015ea3a4ebc61cfe2473157 +Mac = 4d077def + + +Count = 72 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = 6990db6a5cd8dc1494cd63922151920c +Msg = 8ceddebd38f00406743a6756565ce762d3464435d50bd61b8de57fbe0b79df8f0c5cc66713 +Mac = e52cd4fa3cf72b2f06eece112242e6 + + +Count = 73 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = 07f77f114d7264a122a7e9db4fc8d091 +Msg = bb5de4bae58d8f49c48811aa31d99bd7877a0ec04de9bcf8157f73afa3feb8e0526950cbb4 +Mac = 78ecc7997744d4b83db0f8a4b42b04 + + +Count = 74 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = e1895224dc1e4674a9bc9c27b3752c83 +Msg = 2bed02a7404e47dec28c79c2ecceb740031291fd2cb978f580467263626313e01025a8ce79 +Mac = 994e0c7f6689c6e3a13621d38395fc + + +Count = 75 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = b93d47dbb843681b50b1c268998d4ab4 +Msg = 60c6e63b0e4ddef24f990e652c9b75293ba8e4567bcc068380629ff1d0e111068cf924fd53 +Mac = 395f279ce3191863b4fa84f2dab3c7 + + +Count = 76 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = c9408a8b163f1e602894b3239c3fdb6d +Msg = ae1009f03626fcb54bf98c32912f0f70bd398c709c3ed8bf5754fe4bf5f6e47521b32c672e +Mac = 58c3c804c2985df47c5c4bfcfe8837 + + +Count = 77 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = 1f0769a7ae82bd985661e031c4a892c1 +Msg = a0a64582eff002bb348d2798f67812102377c334544e3e065332318ddb80d7299eaf1c258c +Mac = 3ac1f80aee7d9ec5284373e43a56d7 + + +Count = 78 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = 184215145da49db417e8bdd573d6282d +Msg = 5788f61e02304791b52f40057abb4e0446403ef3740253df72059679bb2a6e5e059a709cbb +Mac = 8da8cca9b36f68571c6c0e40a3f410 + + +Count = 79 +Klen = 16 +Mlen = 37 +Tlen = 15 +Key = 1874596cddbdf18a10bc71d60c6bb93d +Msg = 12a340ef015dc0a38625a4847eb6cac9cab9450548e9f96402756531a6a5bf9c37c146bb01 +Mac = 26a5fd25805129756b5b1ac33d8774 diff --git a/test/vectors/aes_cmac_vectors/CMACGenAES256.rsp b/test/vectors/aes_cmac_vectors/CMACGenAES256.rsp new file mode 100644 index 000000000..e1850f90a --- /dev/null +++ b/test/vectors/aes_cmac_vectors/CMACGenAES256.rsp @@ -0,0 +1,869 @@ +# CAVS 11.0 +# CMACGen information +# Algorithms tested:Alg = AES KeySize = 256 Mode = Generate +# Generated on Tue Mar 15 08:40:35 2011 + + +Count = 0 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = 95d8afb8a4b7245ce79f9f9c5ddd40de61b35905dcb638f2b875404a985b3f7a +Msg = 00 +Mac = 68adfc9b59 + + +Count = 1 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = 96a085fe88bc98c763c1064da4c9c8b4aa4ad42abaff407a4626abde6fecd915 +Msg = 00 +Mac = d8dc6726d8 + + +Count = 2 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = 903e8108f35f8503288cd8c10ebdde1fdcd9355aab295025350d62f9dced7ead +Msg = 00 +Mac = 31bf37f719 + + +Count = 3 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = a52345bcb4e95e70dcdf729681ec997a0edd3c6dddb71dbd574b97e45c0c2800 +Msg = 00 +Mac = d4b4e580aa + + +Count = 4 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = baf5afafd7d0c8ad42a44e4e0a90fd2cecaf8df1828686d2b79e56597e71a068 +Msg = 00 +Mac = 9746cbe3ff + + +Count = 5 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = ad632ff35d6a1399b7be3611e5ac40b7e8054e83e822e82dc8243294fe806660 +Msg = 00 +Mac = 9c3e317928 + + +Count = 6 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = 52c557d2fa26693640467709122afb2be6423a1b4ea6795ccc9f6e1ee869f51a +Msg = 00 +Mac = 883c7b812f + + +Count = 7 +Klen = 32 +Mlen = 0 +Tlen = 5 +Key = f4b9a81167255b58b9fab6f31a7d7eee7ca6599dea24cacb1ba0621547463590 +Msg = 00 +Mac = 683c3be756 + + +Count = 8 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = f0a3e4c237d86718d84c43185e70f9cef0dc92b378e3e0db046b06716cfb3b61 +Msg = 00 +Mac = 38ba46602f3411a58b2e + + +Count = 9 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = 71afe8d00c6f2ea8c8b050d4cd45e3686f84f60361a6ea54257184ddc71440f7 +Msg = 00 +Mac = 93057873b0630ff6de7e + + +Count = 10 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = 14cbb770baaadfdefb86af89e5453acac11cba813a17d44ec1f61d042f3bdc5a +Msg = 00 +Mac = dde61fa1342b15a74d5d + + +Count = 11 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = 13835e3d8085bc369a69b8851dcc0e49c15458030e39813f72047c7791973634 +Msg = 00 +Mac = 0cb93914be23792dc288 + + +Count = 12 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = e6bd0010c98e60b9af7cf905c58e0653bc425e2ccc809bd4f9cd7b1f95c18786 +Msg = 00 +Mac = b1685b1d2bb24fbcfb33 + + +Count = 13 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = da79b90f78efa89246c79f75868814248991018722b8f0cc5c32556868b32158 +Msg = 00 +Mac = 83a88e0679bc915386e6 + + +Count = 14 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = 5cfa6e5a2e9a8b49ccbc73e442ca3904d095bb1cee46c9cd8d9789b4a0431987 +Msg = 00 +Mac = 8e36aaec763c6690bae6 + + +Count = 15 +Klen = 32 +Mlen = 0 +Tlen = 10 +Key = 4551c0ae63369ac860a655b09c50791e063c7dfcea513a100a1aa0dcf1caa8c2 +Msg = 00 +Mac = e8eeeb5415a2ab24f176 + + +Count = 16 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = 916cd8119a4d7e825e01a86f93b0eee4a46d29216115cc9ef67a784c19c1ca1e +Msg = 3310fc5bc910f4c9b9cf4957ac638ae7 +Mac = 03f045f886 + + +Count = 17 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = 009f47f180e085776be6644aeac0070be64c289f84a7ba3dece7cdc54f0db354 +Msg = 41b98538c752795d9d48702b56f334d9 +Mac = b961aeec5d + + +Count = 18 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = 7ad491ec57187d4243c36603cefe682c0c56675c310448395e71600fbbf92cbb +Msg = 0ba21b260ee894147853a14328cecf1d +Mac = 1dd6cdc6a7 + + +Count = 19 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = 29fcbbc506989671909510f08c723f51de5836aa58a17cb7d098bdc5757fc0ce +Msg = c00f1b8066677c63e898fddfb8a1b482 +Mac = 097a7c5ce1 + + +Count = 20 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = 5fb57eb6861dedb1fdc0319e4cd33bfb086669fba8e9fd2b94eece557f313da4 +Msg = d4dbe3de674d48c2c16e9be544637f2f +Mac = fa8fde4a5e + + +Count = 21 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = f76c24a362e1e252db2549c5c4e3e5ad1de8e2d19de2c4f801685909a53beb71 +Msg = 972996d5b4b6829913d5acc3dddda2f8 +Mac = 46c87e989d + + +Count = 22 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = 213c55808de5d1e4147bd0e64f41570711cf6ebb4b6625622c81d9798cacb412 +Msg = f94df6392add216cb8f9b8264c3a41e8 +Mac = ba01dea290 + + +Count = 23 +Klen = 32 +Mlen = 16 +Tlen = 5 +Key = 28d44a24d539170f5ff419afcd0032efacc7f2adb1375f6ea019f1506c9ee140 +Msg = d9aa092708e53d1ac81b7b0070586e71 +Mac = 1ae6edcfcf + + +Count = 24 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = 3a75a9d2bdb8c804ba4ab4983573a6b253160dd90f8eddfb2fdc2ab17604f5c5 +Msg = 42f35d5aa533a7a0a5f74e144f2a5f20 +Mac = f1532f8732d9f5903007 + + +Count = 25 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = ceedd503bdedaf238945bb060f6772ce36b67b118b98748d29ccee17dcfeb9d5 +Msg = 4064b1cddf29c0c9adb380b2c1525074 +Mac = 35b4b77e20cc372f5675 + + +Count = 26 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = 739d3c7e0b5ea38678becd6fcae05a26c9bc79f22d7db6fb0d27140c9a7d5c98 +Msg = f3c1888da16bb2de8579915debdde521 +Mac = 16342e2b828eaef6969d + + +Count = 27 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = 4216333f61d3e89d149d274913d51cd2849cb6767d435039c4039134d9ef9030 +Msg = ffead34ac26e21158212d07c367c3a7c +Mac = 29a70e4692d6acb92b79 + + +Count = 28 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = 20225e1131dda70ef888ddfcb7f4e7400ccfff34bb63a079ae81a68f3ab7b1a2 +Msg = a233fed49f866ba32f1c14a57b8e0542 +Mac = 956f17e83094b9d762ca + + +Count = 29 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = c286bff65def16797bdfa7e70fd10c429e8127b53a09b5d6b44a26280e8dade4 +Msg = 218b8756540fec98772183aee7ffa265 +Mac = 4956abf4a4e05d59e8a0 + + +Count = 30 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = 13ccb08a580efea53dfba6a59626bbe2a6dc26333eb8ec1a2572af3bbcf87813 +Msg = 868058aa92f27a1eec013570a509c602 +Mac = 66249fa56ee9b3dd4520 + + +Count = 31 +Klen = 32 +Mlen = 16 +Tlen = 10 +Key = 6e0fcede3647b6b739d490e5b68836f0e74454de856c114b8f98f1bc488cf931 +Msg = 8c09d421e09dac1d9d966f02a3a52097 +Mac = 01e776d3c54f825d9ce1 + + +Count = 32 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = dcba2ce01633937b1cdab12b2e83598a49c51609efae0f4026b62d82c3f280b5 +Msg = 9aa3e8ad92777dfeb121a646ce2e918d1e12b30754bc09470d6da4af6cc9642b012f041ff046569d4fd8d0dccfe448e5 +Mac = 816282fb33 + + +Count = 33 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 0b122ac8f34ed1fe082a3625d157561454167ac145a10bbf77c6a70596d574f1 +Msg = 498b53fdec87edcbf07097dccde93a084bad7501a224e388df349ce18959fe8485f8ad1537f0d896ea73bedc7214713f +Mac = f62c46329b + + +Count = 34 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 7511f3a04e0ea0e7ceda9e06666d1553ab5863840ba76db6b80b37b5e939b377 +Msg = 30834308187b8be1be405d4b274d97b5d8ab71905064185fd73b990d769a018447ccc27bef6c598f681e2e96047dbc30 +Mac = c04ff71638 + + +Count = 35 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = ae7e255de0c5fd0f59e634ddd8f7953697975a3bc68a428239a3e4135ee743b7 +Msg = f8e4c7147fbc3b09f4a1feae73112224afc5107b87efc217dac033589b2d147a28f3c1b9d7d873b9d234b72626b11f97 +Mac = 5582966899 + + +Count = 36 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = ea68a20612f3310649e7c63246b26a7efd016030677a083a85ae03c7a3499814 +Msg = a0629aaac155fe0363ab8bf0221e621bcece73c86f369c66865f156396530b45e3d58bf77a4fa260710cc33a70a76822 +Mac = eac72a8229 + + +Count = 37 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 9b1e7e52ea1a12444d884866e11dcf367b70b816460936fdaebba36d7d35c4a5 +Msg = eb80a43c5986deee6925d7c6d53cbdcbe11194843ea133f72d3590d8e8363efa3d4234097c7fd07b93301cc478864fc9 +Mac = ea1a350fc8 + + +Count = 38 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 50f5ecc3b95a1b5db44ae5706a9bd91d061c9b4a697937a21e5eb4dd90dfed42 +Msg = ab23b53c5d8a477721201a77ee927c6a0d92a6b320cce185621cedb130fea2bcc946d835521185451dfb25882a925f1b +Mac = 61778985d9 + + +Count = 39 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 45c2c86fc0ad37d8abbed5cc9dbc9c76e64af2add11a16c9265ebeb6f37fff47 +Msg = e5267407c93e225cebb9503966568f7406c1af33ac653e5cf4814b4d167e6fce0a800f43f03bdb27ae089ab5db372ae8 +Mac = 073e125891 + + +Count = 40 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = d1abde73d927eef381f37abc254ed995fed933d499419523871d4484571a5293 +Msg = 21ed22abc7bbb62fb2d51d1fb8830ca95b16213f56291af976274934ab0d43805f71d9b906c44973f7d4b59b7a94d35c +Mac = 3ad12df7acebdf36ee1a + + +Count = 41 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 615b79304be63ee74cb1b63581f5863862d78a6b48e177c22db3bef7b3f6b31e +Msg = 99aeb57d7f95703abbca5a215a3197534916139c75c1c6a5304b376bd7b03fefb12410301bab7556e2e45c30f12591e0 +Mac = f3f16805e1c7326524bd + + +Count = 42 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 506e8f2efc8733b454fba43a74c7fa4d428b6626a2ea0a2ee9340ec19542f032 +Msg = ac087420feb1e1e8c2546c2a8b8a5af0d03b05f7e5bf74fa29432e33826f50200646de83fb4d57ac02ef8cfa8f20b1a0 +Mac = 32c77c481821184a3e72 + + +Count = 43 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = cdb6ef161bd4be6f0381ca5479f048b8f2d2f7edca26a617e353f8e19074646e +Msg = 1341a69f685f376cc53cff3252347bce8d9a42cbe2fd39ca7baa06275972c7d9a4ae039a3f80e049a05b978cdfc526b9 +Mac = c663efb93209a0ea1068 + + +Count = 44 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 7bef8d35616108922aab78936967204980b8a4945b31602f5ef2feec9b144841 +Msg = 40affd355416200191ba64edec8d7d27ead235a7b2e01a12662273deb36379b8a748c422c31e046152d6f196f94e852b +Mac = b2d078071e318ec88de9 + + +Count = 45 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 3237b8b4b19b31a220dfe63882937f8d5ead677608c42a57217f2239614c521d +Msg = cb4239f3d724c00fad64f8bddd638d8b10370e5becfcef5b386fd43841b90d8f7c885ca56c64ff57c641ea54d4505589 +Mac = 810dc0f31bfbcc8f5633 + + +Count = 46 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 0f7b1420258e1d82cd6949ff87e327c4611b668db35f2fb00c4db95d6c381724 +Msg = 2feacaa68aa5706f4288e5ee677067fbc50bb8e2c3321f5c8b79afbe6b04cb717b9ceaa28101983a1182be11f9cc225e +Mac = 7c25582e24ce3317a63d + + +Count = 47 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 85e3e6391b13c2a32369b23680504cbf1c127b10d2367ff68c0c356ba886990c +Msg = 674a7b4be56996d4fa5a6d8a64b6cc5b6a7947d76c4f7392be0e56cab7831b4a04710a8e42d7b828cd727b63d2832125 +Mac = 3df3b0296892b03b24d0 + + +Count = 48 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = 6c0b2c3c5fec961ab84e68f56ca166586e5942fb2594b18a1dfdc4a8fdf07634 +Msg = f08f890875e139480489 +Mac = b49c2239e7 + + +Count = 49 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = c69f7c5a50f3e72123371bbfd6bdf532b99ef78500508dfe237a949884061cb3 +Msg = 047840ea96850ee5c0fc +Mac = e5a8fa8047 + + +Count = 50 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = 7e8ea82d1137c1e233522da12626e90a5f66a988e70664cb014c12790d2ab520 +Msg = 19ebfde2d5468ba0a303 +Mac = 8f3d3d12bb + + +Count = 51 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = de8e84440ad97d0ae5001b3590b5182b2f9b5cc09158c2f00fec1fd4b64181cf +Msg = 0cfcd5f96da1c6c66cbd +Mac = 082b5ab895 + + +Count = 52 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = 8de30b07e8352f91ac06aa967c3a62b48d035053b9a63188cf837e3a2e509f83 +Msg = d3b27343119c0ac00a98 +Mac = 71530400ab + + +Count = 53 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = 91ab9c7b77abc6bdb043758bfb87802d0da566f48610e57b24ddc92d366d0307 +Msg = d40d2736e8669c98ba42 +Mac = ad41f7f8d9 + + +Count = 54 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = 6364071a20bf787b16cbcc58397abcd135957d970401f253bf402046b43ae22c +Msg = fa490aeb51b2c516f49a +Mac = 0421c439f7 + + +Count = 55 +Klen = 32 +Mlen = 10 +Tlen = 5 +Key = 4ebe07d03c93e849b4bbfe9f2d2294bf6ccab457f76d3f99cb643d3c51c771c3 +Msg = a38231af405dc7b70c8d +Mac = 41e5c8068d + + +Count = 56 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = 712e6cc33d3d1f442776d546f4d5a25b7d23402a5fd65e6ef3333a4281b5729b +Msg = 56c026b8a71974ff7ecd +Mac = df8dc096f5b385faaffa + + +Count = 57 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = bd05d26ebfcb5f6e102e79976fbd038e02da6a64a6be90bb84bd092be5cb8ae4 +Msg = bd637f707f9e8d4f0cb7 +Mac = a7cc46fa9fc37800339d + + +Count = 58 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = afa88f18ae879a38cbfb2138484a22b0afe90aea71947797cd9d42c0f385bdff +Msg = deef247a0573e87a6474 +Mac = 03b5a18924f92f3ebc76 + + +Count = 59 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = 273cc5013785baeb5abc79c8bde73af71085d7018e7be92a37512e46609e2fce +Msg = e30f71cca7fd341551b1 +Mac = 8291ac51a937856300c0 + + +Count = 60 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = b97e055e3306cf1de468859fb2445c1695012ec84db5ca1250448fad07cb3930 +Msg = b204fe3357150f7289f6 +Mac = d9e121bb4ee358df64cd + + +Count = 61 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = f8c3eb48608018d3c7701c956146e68bc19fb7c6499e3326e5d3b966f962f058 +Msg = 405056131c3293f9d9f0 +Mac = c549b625c6cab8360d2e + + +Count = 62 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = 7c7c857ade97ace0595fed960efe1939f61991b12502af094f30617d8bed17d5 +Msg = 95534b3d85495a7bc8c5 +Mac = 8f5c9dddac54694499dc + + +Count = 63 +Klen = 32 +Mlen = 10 +Tlen = 10 +Key = ffb795d9a4f1af7847c82560eb0728545921f1f6b773f8315cc867d4e322ce7f +Msg = fb7ffb9ede5639dc7ea9 +Mac = c68f3e63165d07170cad + + +Count = 64 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = f64e41e62cae5c26fbd3738916f5f39b67a62f3202fef8ac57f56e78ab1015d8 +Msg = 449f3e3ce08b72f4f9bcad194acdad +Mac = 4019fda078 + + +Count = 65 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = 7a07d53dfd8390b9c2cd25e4c190def22ebd3c6c4338e0813fd1ab9eaf75253e +Msg = 73cd8c9b7502796e75dd9e1a5ab2cf +Mac = c74145e986 + + +Count = 66 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = cf3b0ebee6b4ac11aa7678b2f5453c1307af5cda7c34672a7baaec252fe08faf +Msg = e4bd45e31e1d3cf9276096c18d2d70 +Mac = 326b023904 + + +Count = 67 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = 479720cddaa5e008fa194bb859ec3fce76b2d696c229a0e702122f9df43fd948 +Msg = 3a987eb87958080128f08dcdf91e63 +Mac = 1ebeca94ae + + +Count = 68 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = d32ffd217fb41ef4a2b31d3a47a5e8386925fb90fbe980ca2cf6ba34e814a3ec +Msg = af87b347b59e37a424004a00907dcb +Mac = d628508d13 + + +Count = 69 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = 55b59eb434dd1ba3723ee0dc7286731a0afc956e21be759a7d4d23bbd64c472c +Msg = 5e22dffb5ff90aabfc5d6a24013c46 +Mac = 7a5e2b2481 + + +Count = 70 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = 94897ce2de8d0aa884f9ecd4c61ff580abfa0c89e7792d89021bb005b7bccee8 +Msg = 4a5810b121c91bb4eb31cd1a8059e0 +Mac = cb940e9579 + + +Count = 71 +Klen = 32 +Mlen = 15 +Tlen = 5 +Key = f95d64a513a9f3e6c95c9ed27b22fafd7dd10da52636029523142149116aff53 +Msg = fd940ba0ea21a9341cfc088df2171e +Mac = b099d3f2b4 + + +Count = 72 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = 2f4a6501d8fe7b65f607757ddff6ed87ae0681b98b53331d2d46109f9c541065 +Msg = 4fa9ac1b544afcd85ac32ac0909c74 +Mac = c02e8b66f9fc263b8fb0 + + +Count = 73 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = 012b4cfce8a1acd89de5f6f78794e2813bbcdb89959dafec08ac8a7c32de255e +Msg = 7cabdc7eacd764001509c925edef0d +Mac = 0da78ac83b1c0141968c + + +Count = 74 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = bb3087d1b5b0f6f14a532c3604c82874fb15e97a4b3883dfc50e71ffe5752d40 +Msg = 90a10e977c80cd885ff45487e90365 +Mac = 6fdc6c626e9a8be6c34c + + +Count = 75 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = 569d50d2ea793302102714e517416e1bee942fe59f8d623a1aee0b1834c55219 +Msg = c2c5846614fba01347ed69221daab9 +Mac = 6b475d0667255b5a49ab + + +Count = 76 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = 698bf4fc0b9c2196162d9405b5ce7460ef7e8dd884094fa617951a429277b9d6 +Msg = 03c0dff0253a0dcc9afd9fc6dbeef4 +Mac = f00b02485fc68158f84f + + +Count = 77 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = 7b352c47a4718938f842f6924684edb8f6512f33f9245cfa003ec1f0ec4971af +Msg = e48dfaa53b6807ea6f01d8dca67960 +Mac = 1b5818e13a629caf728b + + +Count = 78 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = b331553cfe0308f1be6b162d11a12ff9ab144f6b1da42b785711ce0a6cb38452 +Msg = 240ac67c0bfb4254d8cc6183ecf213 +Mac = f5a1d5715ceaaefe1734 + + +Count = 79 +Klen = 32 +Mlen = 15 +Tlen = 10 +Key = 397e826e6f0e7eb141087b3c5eb6aa47b399950827526bc289c398fec6719918 +Msg = 72142aa104b778564edf32daebcb64 +Mac = 834a790b5c40f4cf7692 + + +Count = 80 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 166cc49ca548d5bd871751ce05c604bc6a4b97dace2e07822d4856ffbccb80aa +Msg = 065ff9e8d511c61da3a554d598aebd51419a8592ee8723c95858bd0f87083456f33f609fea239d6e3171867beecc00ab +Mac = 150d928f7e + + +Count = 81 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 80441013c0cce59292a799e58a2fee5b0758daa15741d0ef2209417f05e46343 +Msg = 6fd89e3eb7b048eaf66beeb2ae543ede159b3ab66855319f81c5ee88acda2f84b7f859b848fc6978737a2ead8c48b67a +Mac = 0e7679e2db + + +Count = 82 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = e0e54be32dca732c5780f9e68816fdc17de4cde68c79078be5d5fec518d95f9e +Msg = f706a3e09df95d3e21d2e0c886dc5dbd9eeb6a2fc53f5108cfacae4a3ef8399bb885e000b92f19e98678766e62e379d8 +Mac = d913ea746b + + +Count = 83 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 4767cfb06f010a20fdfa790dc91acb391fccd9ebb8363636e9aa087d1b3d1737 +Msg = cf38216a33db0f5b6c4c9f413ba29f8001ffb5f4bfb7f63340b5b313951b966dc229ee20b760485882e73f10c22d95d5 +Mac = 84056758cc + + +Count = 84 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = b8244a86f99f5b0d7533c599b1205a0627c9816e99b82c4ca4e10ae1982bfdd7 +Msg = f12ee9d37946cfd88516cbe4a046f08c9bbba76a3973ff1e2cb14493405bd384d7a02c3e95dd49a75cc22f7f7bb1c2e6 +Mac = d70c237f94 + + +Count = 85 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 9523f53f92b6e4ba86e56e11e0fa09f2672b6269c411fcf8415c19e9d0c4dde3 +Msg = f0b3522e21a33992e9af29c48d58b3e33d5da15b4726d2678b6245d52ff0730a94fbe245886af728bd770c74799dc214 +Mac = 4bed0d0a2b + + +Count = 86 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 9caa7d82a499d92ab491bb6c7bd66256617e9d4fbdd5989f48fff532d2df1e98 +Msg = effcea4e4dbc57410426b39fcf51c9daecd9d310888590d77827973a29c4ebffdaf5cf2c088ddcc92a7c50e69ff4a9e0 +Mac = 3cada30439 + + +Count = 87 +Klen = 32 +Mlen = 48 +Tlen = 5 +Key = 68c2249c8a338f6358963638bd016c71c027a600a1202f5225681d772e298382 +Msg = e6ffb8b4bc6127e2fe74a8773628b517466ad733a9560eddfda873dabe741cf9551840a4516e9bb5f446148bf1139e5c +Mac = d9f205e453 + + +Count = 88 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = a4b91d7d6b655945d711c203f7e2f99da891e3380a12b7ff3073551f1c06da16 +Msg = ad17e9724a19959a92425cbb099193ec38fca8edb0614eba4dbfda60b8a6ed102fec547289a22c3b74464a02023ada50 +Mac = 34f439ba9d90c8555b21 + + +Count = 89 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 97b9814d6cb36376c4730dfde6349c19741b743095c784035229cb2741961ab4 +Msg = 635f20accf83befe972cfdcbcdf79e2549256aff43e3699021cf55fd8db94e32cba6cf10491be1ce78988f99db62997e +Mac = e0e61b45ff5ac43b504d + + +Count = 90 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 8a981033d7b4eb4cc9648ba26ad9679c1550dcf32df17fb80ef6b299440f7560 +Msg = ad7883c7bec55f31ccf6f62bda15fc2fcb890ef6c8e738e8e10bbad6f7680cebd99c1fe0ad47e670921e150c833b29cf +Mac = 2665bb30e4fd690d485c + + +Count = 91 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 1bbf5a21762dd5a9371ea48fc6e919f494cdc3325d27dbb8aae8de1599477c52 +Msg = 5c98dae543dd618cd6c9ed391864335f01d9869321859d40874e959ce13639dae52f82a2ef325abeeb8ba516757782de +Mac = 02ce2699e19f7d1da2b2 + + +Count = 92 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = f81ea615e48c0a25410ff15c1566b10a83fb9d839b667dc577333b5b83e5df81 +Msg = 17fabce1237e7a0cb5cbc6d1ab5dfcace0ab85f698ff555c1e86b890aba34f3e8a8955427a09271854a80494edf511d3 +Mac = 5202993b20642a8f3cfc + + +Count = 93 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 23e5422e8d7560a9e65642b5e723a47536c16791f3a0cf918d3dee8adbec60fd +Msg = b9ee1400186c0c0774401a815bcde30d3be1d4f87f42646cfb8a99e48a35cee3f5f9b3e6175695973f6de043d615e28e +Mac = 1775847019ca9b88683e + + +Count = 94 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = 7cfc086d10659d7cb9247208358dd82c03b8dbd8233223231df218e2448f4a79 +Msg = a3af8f99703a601086c2a1ffe55fde4c2c4153dbff8d6601ab68743c0d50d021b0b3099535ba6c40f866ca3ff0df7c19 +Mac = 9d713a1944b8eb649584 + + +Count = 95 +Klen = 32 +Mlen = 48 +Tlen = 10 +Key = d0f46fb37d516cc957aaefd3be2a8bede885330a8edb96f3e5e0ab8cd03a8c59 +Msg = 60c5ec2170e9bf2b0d24174a7bbbf41056e778a3772cefb71ce60cb94225754d56ba83fb0d9242259143c03ddde58435 +Mac = 03f592d81ce503133129 + diff --git a/test/vectors/aes_gcm_nist_vectors.c b/test/vectors/aes_gcm_nist_vectors.c index 317ab80dd..df626c46d 100644 --- a/test/vectors/aes_gcm_nist_vectors.c +++ b/test/vectors/aes_gcm_nist_vectors.c @@ -272,5 +272,24 @@ const aes_gcm_test_vectors gcm_test_cases[GCM_TEST_VECTORS_COUNT] = 0x2E, 0x58, 0x49, 0x5C }, { 0x88, 0xF8, 0x75, 0x7A, 0xDB, 0x8A, 0xA7, 0x88, 0xD8, 0xF6, 0x5A, 0xD6, 0x68, 0xBE, 0x70, 0xE7 } }, + { + "Test case 15", + { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, + 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08 }, + 12, + { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88 }, + 64, + { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, + 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, + 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, + 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55 }, + { 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07, 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d, + 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9, 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa, + 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d, 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38, + 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a, 0xbc, 0xc9, 0xf6, 0x62, 0x89, 0x80, 0x15, 0xad }, + 0, + { 0 }, + { 0xb0, 0x94, 0xda, 0xc5, 0xd9, 0x34, 0x71, 0xbd, 0xec, 0x1a, 0x50, 0x22, 0x70, 0xe3, 0xcc, 0x6c } + }, }; // *INDENT-ON* diff --git a/test/vectors/aes_gcm_nist_vectors.h b/test/vectors/aes_gcm_nist_vectors.h index 258985137..01d346d8a 100644 --- a/test/vectors/aes_gcm_nist_vectors.h +++ b/test/vectors/aes_gcm_nist_vectors.h @@ -5,7 +5,7 @@ #include #define GCM_TEST_VECTORS_DATA_SIZE_MAX 100 -#define GCM_TEST_VECTORS_COUNT 13 +#define GCM_TEST_VECTORS_COUNT 14 #ifndef AES_DATA_SIZE #define AES_DATA_SIZE 16 diff --git a/test/vectors/ecdh_nist_vectors.c b/test/vectors/ecdh_nist_vectors.c index cc24c4eed..10f81c2e6 100644 --- a/test/vectors/ecdh_nist_vectors.c +++ b/test/vectors/ecdh_nist_vectors.c @@ -40,148 +40,244 @@ const ecdh_p256_test_vector ecdh_p256_test_vectors[] = { 0xcc, 0xc5, 0x85, 0x20, 0x60, 0x56, 0x1e, 0x68, 0x04, 0x0d, 0xd7, 0x77, 0x89, 0x97, 0xbd, 0x7b }, }, { - { 0x80, 0x9f, 0x04, 0x28, 0x9c, 0x64, 0x34, 0x8c, 0x01, 0x51, 0x5e, 0xb0, 0x3d, 0x5c, 0xe7, 0xac,0x1a, 0x8c, 0xb9, 0x49, 0x8f, 0x5c, 0xaa, 0x50, 0x19, 0x7e, 0x58, 0xd4, 0x3a, 0x86, 0xa7, 0xae, }, - { 0xb2, 0x9d, 0x84, 0xe8, 0x11, 0x19, 0x7f, 0x25, 0xeb, 0xa8, 0xf5, 0x19, 0x40, 0x92, 0xcb, 0x6f,0xf4, 0x40, 0xe2, 0x6d, 0x44, 0x21, 0x01, 0x13, 0x72, 0x46, 0x1f, 0x57, 0x92, 0x71, 0xcd, 0xa3, }, - { 0x38, 0xf6, 0x5d, 0x6d, 0xce, 0x47, 0x67, 0x60, 0x44, 0xd5, 0x8c, 0xe5, 0x13, 0x95, 0x82, 0xd5,0x68, 0xf6, 0x4b, 0xb1, 0x60, 0x98, 0xd1, 0x79, 0xdb, 0xab, 0x07, 0x74, 0x1d, 0xd5, 0xca, 0xf5, }, - { 0x05, 0x7d, 0x63, 0x60, 0x96, 0xcb, 0x80, 0xb6, 0x7a, 0x8c, 0x03, 0x8c, 0x89, 0x0e, 0x88, 0x7d,0x1a, 0xdf, 0xa4, 0x19, 0x5e, 0x9b, 0x3c, 0xe2, 0x41, 0xc8, 0xa7, 0x78, 0xc5, 0x9c, 0xda, 0x67, } + { 0x80, 0x9f, 0x04, 0x28, 0x9c, 0x64, 0x34, 0x8c, 0x01, 0x51, 0x5e, 0xb0, 0x3d, 0x5c, 0xe7, 0xac,0x1a, 0x8c, 0xb9, 0x49, 0x8f, 0x5c, 0xaa, 0x50, 0x19, + 0x7e, 0x58, 0xd4, 0x3a, 0x86, 0xa7, 0xae, }, + { 0xb2, 0x9d, 0x84, 0xe8, 0x11, 0x19, 0x7f, 0x25, 0xeb, 0xa8, 0xf5, 0x19, 0x40, 0x92, 0xcb, 0x6f,0xf4, 0x40, 0xe2, 0x6d, 0x44, 0x21, 0x01, 0x13, 0x72, + 0x46, 0x1f, 0x57, 0x92, 0x71, 0xcd, 0xa3, }, + { 0x38, 0xf6, 0x5d, 0x6d, 0xce, 0x47, 0x67, 0x60, 0x44, 0xd5, 0x8c, 0xe5, 0x13, 0x95, 0x82, 0xd5,0x68, 0xf6, 0x4b, 0xb1, 0x60, 0x98, 0xd1, 0x79, 0xdb, + 0xab, 0x07, 0x74, 0x1d, 0xd5, 0xca, 0xf5, }, + { 0x05, 0x7d, 0x63, 0x60, 0x96, 0xcb, 0x80, 0xb6, 0x7a, 0x8c, 0x03, 0x8c, 0x89, 0x0e, 0x88, 0x7d,0x1a, 0xdf, 0xa4, 0x19, 0x5e, 0x9b, 0x3c, 0xe2, 0x41, + 0xc8, 0xa7, 0x78, 0xc5, 0x9c, 0xda, 0x67, } }, { - { 0xa2, 0x33, 0x9c, 0x12, 0xd4, 0xa0, 0x3c, 0x33, 0x54, 0x6d, 0xe5, 0x33, 0x26, 0x8b, 0x4a, 0xd6,0x67, 0xde, 0xbf, 0x45, 0x8b, 0x46, 0x4d, 0x77, 0x44, 0x36, 0x36, 0x44, 0x0e, 0xe7, 0xfe, 0xc3, }, - { 0xef, 0x48, 0xa3, 0xab, 0x26, 0xe2, 0x02, 0x20, 0xbc, 0xda, 0x2c, 0x18, 0x51, 0x07, 0x68, 0x39,0xda, 0xe8, 0x8e, 0xae, 0x96, 0x28, 0x69, 0xa4, 0x97, 0xbf, 0x73, 0xcb, 0x66, 0xfa, 0xf5, 0x36, }, - { 0x1a, 0xcc, 0xfa, 0xf1, 0xb9, 0x77, 0x12, 0xb8, 0x5a, 0x6f, 0x54, 0xb1, 0x48, 0x98, 0x5a, 0x1b,0xdc, 0x4c, 0x9b, 0xec, 0x0b, 0xd2, 0x58, 0xca, 0xd4, 0xb3, 0xd6, 0x03, 0xf4, 0x9f, 0x32, 0xc8, }, - { 0x2d, 0x45, 0x7b, 0x78, 0xb4, 0x61, 0x41, 0x32, 0x47, 0x76, 0x18, 0xa5, 0xb0, 0x77, 0x96, 0x5e,0xc9, 0x07, 0x30, 0xa8, 0xc8, 0x1a, 0x1c, 0x75, 0xd6, 0xd4, 0xec, 0x68, 0x00, 0x5d, 0x67, 0xec, }, + { 0xa2, 0x33, 0x9c, 0x12, 0xd4, 0xa0, 0x3c, 0x33, 0x54, 0x6d, 0xe5, 0x33, 0x26, 0x8b, 0x4a, 0xd6,0x67, 0xde, 0xbf, 0x45, 0x8b, 0x46, 0x4d, 0x77, 0x44, + 0x36, 0x36, 0x44, 0x0e, 0xe7, 0xfe, 0xc3, }, + { 0xef, 0x48, 0xa3, 0xab, 0x26, 0xe2, 0x02, 0x20, 0xbc, 0xda, 0x2c, 0x18, 0x51, 0x07, 0x68, 0x39,0xda, 0xe8, 0x8e, 0xae, 0x96, 0x28, 0x69, 0xa4, 0x97, + 0xbf, 0x73, 0xcb, 0x66, 0xfa, 0xf5, 0x36, }, + { 0x1a, 0xcc, 0xfa, 0xf1, 0xb9, 0x77, 0x12, 0xb8, 0x5a, 0x6f, 0x54, 0xb1, 0x48, 0x98, 0x5a, 0x1b,0xdc, 0x4c, 0x9b, 0xec, 0x0b, 0xd2, 0x58, 0xca, 0xd4, + 0xb3, 0xd6, 0x03, 0xf4, 0x9f, 0x32, 0xc8, }, + { 0x2d, 0x45, 0x7b, 0x78, 0xb4, 0x61, 0x41, 0x32, 0x47, 0x76, 0x18, 0xa5, 0xb0, 0x77, 0x96, 0x5e,0xc9, 0x07, 0x30, 0xa8, 0xc8, 0x1a, 0x1c, 0x75, 0xd6, + 0xd4, 0xec, 0x68, 0x00, 0x5d, 0x67, 0xec, }, }, { - { 0xdf, 0x39, 0x89, 0xb9, 0xfa, 0x55, 0x49, 0x57, 0x19, 0xb3, 0xcf, 0x46, 0xdc, 0xcd, 0x28, 0xb5,0x15, 0x3f, 0x78, 0x08, 0x19, 0x1d, 0xd5, 0x18, 0xef, 0xf0, 0xc3, 0xcf, 0xf2, 0xb7, 0x05, 0xed, }, - { 0x42, 0x22, 0x94, 0xff, 0x46, 0x00, 0x34, 0x29, 0xd7, 0x39, 0xa3, 0x32, 0x06, 0xc8, 0x75, 0x25,0x52, 0xc8, 0xba, 0x54, 0xa2, 0x70, 0xde, 0xfc, 0x06, 0xe2, 0x21, 0xe0, 0xfe, 0xaf, 0x6a, 0xc4, }, - { 0x20, 0x7c, 0x43, 0xa7, 0x9b, 0xfe, 0xe0, 0x3d, 0xb6, 0xf4, 0xb9, 0x44, 0xf5, 0x3d, 0x2f, 0xb7,0x6c, 0xc4, 0x9e, 0xf1, 0xc9, 0xc4, 0xd3, 0x4d, 0x51, 0xb6, 0xc6, 0x5c, 0x4d, 0xb6, 0x93, 0x2d, }, - { 0x96, 0x44, 0x12, 0x59, 0x53, 0x4b, 0x80, 0xf6, 0xae, 0xe3, 0xd2, 0x87, 0xa6, 0xbb, 0x17, 0xb5,0x09, 0x4d, 0xd4, 0x27, 0x7d, 0x9e, 0x29, 0x4f, 0x8f, 0xe7, 0x3e, 0x48, 0xbf, 0x2a, 0x00, 0x24, }, + { 0xdf, 0x39, 0x89, 0xb9, 0xfa, 0x55, 0x49, 0x57, 0x19, 0xb3, 0xcf, 0x46, 0xdc, 0xcd, 0x28, 0xb5,0x15, 0x3f, 0x78, 0x08, 0x19, 0x1d, 0xd5, 0x18, 0xef, + 0xf0, 0xc3, 0xcf, 0xf2, 0xb7, 0x05, 0xed, }, + { 0x42, 0x22, 0x94, 0xff, 0x46, 0x00, 0x34, 0x29, 0xd7, 0x39, 0xa3, 0x32, 0x06, 0xc8, 0x75, 0x25,0x52, 0xc8, 0xba, 0x54, 0xa2, 0x70, 0xde, 0xfc, 0x06, + 0xe2, 0x21, 0xe0, 0xfe, 0xaf, 0x6a, 0xc4, }, + { 0x20, 0x7c, 0x43, 0xa7, 0x9b, 0xfe, 0xe0, 0x3d, 0xb6, 0xf4, 0xb9, 0x44, 0xf5, 0x3d, 0x2f, 0xb7,0x6c, 0xc4, 0x9e, 0xf1, 0xc9, 0xc4, 0xd3, 0x4d, 0x51, + 0xb6, 0xc6, 0x5c, 0x4d, 0xb6, 0x93, 0x2d, }, + { 0x96, 0x44, 0x12, 0x59, 0x53, 0x4b, 0x80, 0xf6, 0xae, 0xe3, 0xd2, 0x87, 0xa6, 0xbb, 0x17, 0xb5,0x09, 0x4d, 0xd4, 0x27, 0x7d, 0x9e, 0x29, 0x4f, 0x8f, + 0xe7, 0x3e, 0x48, 0xbf, 0x2a, 0x00, 0x24, }, }, { - { 0x41, 0x19, 0x2d, 0x28, 0x13, 0xe7, 0x95, 0x61, 0xe6, 0xa1, 0xd6, 0xf5, 0x3c, 0x8b, 0xc1, 0xa4,0x33, 0xa1, 0x99, 0xc8, 0x35, 0xe1, 0x41, 0xb0, 0x5a, 0x74, 0xa9, 0x7b, 0x0f, 0xae, 0xb9, 0x22, }, - { 0x1a, 0xf9, 0x8c, 0xc4, 0x5e, 0x98, 0xa7, 0xe0, 0x41, 0xb0, 0x1c, 0xf3, 0x5f, 0x46, 0x2b, 0x75,0x62, 0x28, 0x13, 0x51, 0xc8, 0xeb, 0xf3, 0xff, 0xa0, 0x2e, 0x33, 0xa0, 0x72, 0x2a, 0x13, 0x28, }, - { 0x59, 0x13, 0x7e, 0x38, 0x15, 0x23, 0x50, 0xb1, 0x95, 0xc9, 0x71, 0x8d, 0x39, 0x67, 0x3d, 0x51,0x98, 0x38, 0x05, 0x5a, 0xd9, 0x08, 0xdd, 0x47, 0x57, 0x15, 0x2f, 0xd8, 0x25, 0x5c, 0x09, 0xbf, }, - { 0x19, 0xd4, 0x4c, 0x8d, 0x63, 0xe8, 0xe8, 0xdd, 0x12, 0xc2, 0x2a, 0x87, 0xb8, 0xcd, 0x4e, 0xce,0x27, 0xac, 0xdd, 0xe0, 0x4d, 0xbf, 0x47, 0xf7, 0xf2, 0x75, 0x37, 0xa6, 0x99, 0x9a, 0x8e, 0x62, }, + { 0x41, 0x19, 0x2d, 0x28, 0x13, 0xe7, 0x95, 0x61, 0xe6, 0xa1, 0xd6, 0xf5, 0x3c, 0x8b, 0xc1, 0xa4,0x33, 0xa1, 0x99, 0xc8, 0x35, 0xe1, 0x41, 0xb0, 0x5a, + 0x74, 0xa9, 0x7b, 0x0f, 0xae, 0xb9, 0x22, }, + { 0x1a, 0xf9, 0x8c, 0xc4, 0x5e, 0x98, 0xa7, 0xe0, 0x41, 0xb0, 0x1c, 0xf3, 0x5f, 0x46, 0x2b, 0x75,0x62, 0x28, 0x13, 0x51, 0xc8, 0xeb, 0xf3, 0xff, 0xa0, + 0x2e, 0x33, 0xa0, 0x72, 0x2a, 0x13, 0x28, }, + { 0x59, 0x13, 0x7e, 0x38, 0x15, 0x23, 0x50, 0xb1, 0x95, 0xc9, 0x71, 0x8d, 0x39, 0x67, 0x3d, 0x51,0x98, 0x38, 0x05, 0x5a, 0xd9, 0x08, 0xdd, 0x47, 0x57, + 0x15, 0x2f, 0xd8, 0x25, 0x5c, 0x09, 0xbf, }, + { 0x19, 0xd4, 0x4c, 0x8d, 0x63, 0xe8, 0xe8, 0xdd, 0x12, 0xc2, 0x2a, 0x87, 0xb8, 0xcd, 0x4e, 0xce,0x27, 0xac, 0xdd, 0xe0, 0x4d, 0xbf, 0x47, 0xf7, 0xf2, + 0x75, 0x37, 0xa6, 0x99, 0x9a, 0x8e, 0x62, }, }, { - { 0x33, 0xe8, 0x20, 0x92, 0xa0, 0xf1, 0xfb, 0x38, 0xf5, 0x64, 0x9d, 0x58, 0x67, 0xfb, 0xa2, 0x8b,0x50, 0x31, 0x72, 0xb7, 0x03, 0x55, 0x74, 0xbf, 0x8e, 0x5b, 0x71, 0x00, 0xa3, 0x05, 0x27, 0x92, }, - { 0xf2, 0xcf, 0x6b, 0x60, 0x1e, 0x0a, 0x05, 0x94, 0x5e, 0x33, 0x55, 0x50, 0xbf, 0x64, 0x8d, 0x78,0x2f, 0x46, 0x18, 0x6c, 0x77, 0x2c, 0x0f, 0x20, 0xd3, 0xcd, 0x0d, 0x6b, 0x8c, 0xa1, 0x4b, 0x2f, }, - { 0xf5, 0xf8, 0xe0, 0x17, 0x46, 0x10, 0xa6, 0x61, 0x27, 0x79, 0x79, 0xb5, 0x8c, 0xe5, 0xc9, 0x0f,0xee, 0x6c, 0x9b, 0x3b, 0xb3, 0x46, 0xa9, 0x0a, 0x71, 0x96, 0x25, 0x5e, 0x40, 0xb1, 0x32, 0xef, }, - { 0x66, 0x4e, 0x45, 0xd5, 0xbb, 0xa4, 0xac, 0x93, 0x1c, 0xd6, 0x5d, 0x52, 0x01, 0x7e, 0x4b, 0xe9,0xb1, 0x9a, 0x51, 0x5f, 0x66, 0x9b, 0xea, 0x47, 0x03, 0x54, 0x2a, 0x2c, 0x52, 0x5c, 0xd3, 0xd3, }, + { 0x33, 0xe8, 0x20, 0x92, 0xa0, 0xf1, 0xfb, 0x38, 0xf5, 0x64, 0x9d, 0x58, 0x67, 0xfb, 0xa2, 0x8b,0x50, 0x31, 0x72, 0xb7, 0x03, 0x55, 0x74, 0xbf, 0x8e, + 0x5b, 0x71, 0x00, 0xa3, 0x05, 0x27, 0x92, }, + { 0xf2, 0xcf, 0x6b, 0x60, 0x1e, 0x0a, 0x05, 0x94, 0x5e, 0x33, 0x55, 0x50, 0xbf, 0x64, 0x8d, 0x78,0x2f, 0x46, 0x18, 0x6c, 0x77, 0x2c, 0x0f, 0x20, 0xd3, + 0xcd, 0x0d, 0x6b, 0x8c, 0xa1, 0x4b, 0x2f, }, + { 0xf5, 0xf8, 0xe0, 0x17, 0x46, 0x10, 0xa6, 0x61, 0x27, 0x79, 0x79, 0xb5, 0x8c, 0xe5, 0xc9, 0x0f,0xee, 0x6c, 0x9b, 0x3b, 0xb3, 0x46, 0xa9, 0x0a, 0x71, + 0x96, 0x25, 0x5e, 0x40, 0xb1, 0x32, 0xef, }, + { 0x66, 0x4e, 0x45, 0xd5, 0xbb, 0xa4, 0xac, 0x93, 0x1c, 0xd6, 0x5d, 0x52, 0x01, 0x7e, 0x4b, 0xe9,0xb1, 0x9a, 0x51, 0x5f, 0x66, 0x9b, 0xea, 0x47, 0x03, + 0x54, 0x2a, 0x2c, 0x52, 0x5c, 0xd3, 0xd3, }, }, { - { 0x6a, 0x9e, 0x0c, 0x3f, 0x91, 0x6e, 0x4e, 0x31, 0x5c, 0x91, 0x14, 0x7b, 0xe5, 0x71, 0x68, 0x6d,0x90, 0x46, 0x4e, 0x8b, 0xf9, 0x81, 0xd3, 0x4a, 0x90, 0xb6, 0x35, 0x3b, 0xca, 0x6e, 0xeb, 0xa7, }, - { 0x40, 0xf9, 0xbe, 0xad, 0x39, 0xc2, 0xf2, 0xbc, 0xc2, 0x60, 0x2f, 0x75, 0xb8, 0xa7, 0x3e, 0xc7,0xbd, 0xff, 0xcb, 0xce, 0xad, 0x15, 0x9d, 0x01, 0x74, 0xc6, 0xc4, 0xd3, 0xc5, 0x35, 0x7f, 0x05, }, - { 0x3b, 0x58, 0x9a, 0xf7, 0xdb, 0x03, 0x45, 0x9c, 0x23, 0x06, 0x8b, 0x64, 0xf6, 0x3f, 0x28, 0xd3,0xc3, 0xc6, 0xbc, 0x25, 0xb5, 0xbf, 0x76, 0xac, 0x05, 0xf3, 0x54, 0x82, 0x88, 0x8b, 0x51, 0x90, }, - { 0xca, 0x34, 0x2d, 0xaa, 0x50, 0xdc, 0x09, 0xd6, 0x1b, 0xe7, 0xc1, 0x96, 0xc8, 0x5e, 0x60, 0xa8,0x0c, 0x5c, 0xb0, 0x49, 0x31, 0x74, 0x68, 0x20, 0xbe, 0x54, 0x8c, 0xdd, 0xe0, 0x55, 0x67, 0x9d, }, + { 0x6a, 0x9e, 0x0c, 0x3f, 0x91, 0x6e, 0x4e, 0x31, 0x5c, 0x91, 0x14, 0x7b, 0xe5, 0x71, 0x68, 0x6d,0x90, 0x46, 0x4e, 0x8b, 0xf9, 0x81, 0xd3, 0x4a, 0x90, + 0xb6, 0x35, 0x3b, 0xca, 0x6e, 0xeb, 0xa7, }, + { 0x40, 0xf9, 0xbe, 0xad, 0x39, 0xc2, 0xf2, 0xbc, 0xc2, 0x60, 0x2f, 0x75, 0xb8, 0xa7, 0x3e, 0xc7,0xbd, 0xff, 0xcb, 0xce, 0xad, 0x15, 0x9d, 0x01, 0x74, + 0xc6, 0xc4, 0xd3, 0xc5, 0x35, 0x7f, 0x05, }, + { 0x3b, 0x58, 0x9a, 0xf7, 0xdb, 0x03, 0x45, 0x9c, 0x23, 0x06, 0x8b, 0x64, 0xf6, 0x3f, 0x28, 0xd3,0xc3, 0xc6, 0xbc, 0x25, 0xb5, 0xbf, 0x76, 0xac, 0x05, + 0xf3, 0x54, 0x82, 0x88, 0x8b, 0x51, 0x90, }, + { 0xca, 0x34, 0x2d, 0xaa, 0x50, 0xdc, 0x09, 0xd6, 0x1b, 0xe7, 0xc1, 0x96, 0xc8, 0x5e, 0x60, 0xa8,0x0c, 0x5c, 0xb0, 0x49, 0x31, 0x74, 0x68, 0x20, 0xbe, + 0x54, 0x8c, 0xdd, 0xe0, 0x55, 0x67, 0x9d, }, }, { - { 0xa9, 0xc0, 0xac, 0xad, 0xe5, 0x5c, 0x2a, 0x73, 0xea, 0xd1, 0xa8, 0x6f, 0xb0, 0xa9, 0x71, 0x32,0x23, 0xc8, 0x24, 0x75, 0x79, 0x1c, 0xd0, 0xe2, 0x10, 0xb0, 0x46, 0x41, 0x2c, 0xe2, 0x24, 0xbb, }, - { 0xf6, 0xde, 0x0a, 0xfa, 0x20, 0xe9, 0x3e, 0x07, 0x84, 0x67, 0xc0, 0x53, 0xd2, 0x41, 0x90, 0x3e,0xda, 0xd7, 0x34, 0xc6, 0xb4, 0x03, 0xba, 0x75, 0x8c, 0x2b, 0x5f, 0xf0, 0x4c, 0x9d, 0x42, 0x29, }, - { 0xd8, 0xbf, 0x92, 0x9a, 0x20, 0xea, 0x74, 0x36, 0xb2, 0x46, 0x1b, 0x54, 0x1a, 0x11, 0xc8, 0x0e,0x61, 0xd8, 0x26, 0xc0, 0xa4, 0xc9, 0xd3, 0x22, 0xb3, 0x1d, 0xd5, 0x4e, 0x7f, 0x58, 0xb9, 0xc8, }, - { 0x35, 0xaa, 0x9b, 0x52, 0x53, 0x6a, 0x46, 0x1b, 0xfd, 0xe4, 0xe8, 0x5f, 0xc7, 0x56, 0xbe, 0x92,0x8c, 0x7d, 0xe9, 0x79, 0x23, 0xf0, 0x41, 0x6c, 0x7a, 0x3a, 0xc8, 0xf8, 0x8b, 0x3d, 0x44, 0x89, }, + { 0xa9, 0xc0, 0xac, 0xad, 0xe5, 0x5c, 0x2a, 0x73, 0xea, 0xd1, 0xa8, 0x6f, 0xb0, 0xa9, 0x71, 0x32,0x23, 0xc8, 0x24, 0x75, 0x79, 0x1c, 0xd0, 0xe2, 0x10, + 0xb0, 0x46, 0x41, 0x2c, 0xe2, 0x24, 0xbb, }, + { 0xf6, 0xde, 0x0a, 0xfa, 0x20, 0xe9, 0x3e, 0x07, 0x84, 0x67, 0xc0, 0x53, 0xd2, 0x41, 0x90, 0x3e,0xda, 0xd7, 0x34, 0xc6, 0xb4, 0x03, 0xba, 0x75, 0x8c, + 0x2b, 0x5f, 0xf0, 0x4c, 0x9d, 0x42, 0x29, }, + { 0xd8, 0xbf, 0x92, 0x9a, 0x20, 0xea, 0x74, 0x36, 0xb2, 0x46, 0x1b, 0x54, 0x1a, 0x11, 0xc8, 0x0e,0x61, 0xd8, 0x26, 0xc0, 0xa4, 0xc9, 0xd3, 0x22, 0xb3, + 0x1d, 0xd5, 0x4e, 0x7f, 0x58, 0xb9, 0xc8, }, + { 0x35, 0xaa, 0x9b, 0x52, 0x53, 0x6a, 0x46, 0x1b, 0xfd, 0xe4, 0xe8, 0x5f, 0xc7, 0x56, 0xbe, 0x92,0x8c, 0x7d, 0xe9, 0x79, 0x23, 0xf0, 0x41, 0x6c, 0x7a, + 0x3a, 0xc8, 0xf8, 0x8b, 0x3d, 0x44, 0x89, }, }, { - { 0x94, 0xe9, 0x4f, 0x16, 0xa9, 0x82, 0x55, 0xff, 0xf2, 0xb9, 0xac, 0x0c, 0x95, 0x98, 0xaa, 0xc3,0x54, 0x87, 0xb3, 0x23, 0x2d, 0x32, 0x31, 0xbd, 0x93, 0xb7, 0xdb, 0x7d, 0xf3, 0x6f, 0x9e, 0xb9, }, - { 0xd8, 0x04, 0x9a, 0x43, 0x57, 0x9c, 0xfa, 0x90, 0xb8, 0x09, 0x3a, 0x94, 0x41, 0x6c, 0xbe, 0xfb,0xf9, 0x33, 0x86, 0xf1, 0x5b, 0x3f, 0x6e, 0x19, 0x0b, 0x6e, 0x34, 0x55, 0xfe, 0xdf, 0xe6, 0x9a, }, - { 0x0f, 0x98, 0x83, 0xba, 0x0e, 0xf3, 0x2e, 0xe7, 0x5d, 0xed, 0x0d, 0x8b, 0xda, 0x39, 0xa5, 0x14,0x6a, 0x29, 0xf1, 0xf2, 0x50, 0x7b, 0x3b, 0xd4, 0x58, 0xdb, 0xea, 0x0b, 0x2b, 0xb0, 0x5b, 0x4d, }, - { 0x60, 0x5c, 0x16, 0x17, 0x8a, 0x9b, 0xc8, 0x75, 0xdc, 0xbf, 0xf5, 0x4d, 0x63, 0xfe, 0x00, 0xdf,0x69, 0x9c, 0x03, 0xe8, 0xa8, 0x88, 0xe9, 0xe9, 0x4d, 0xfb, 0xab, 0x90, 0xb2, 0x5f, 0x39, 0xb4, }, + { 0x94, 0xe9, 0x4f, 0x16, 0xa9, 0x82, 0x55, 0xff, 0xf2, 0xb9, 0xac, 0x0c, 0x95, 0x98, 0xaa, 0xc3,0x54, 0x87, 0xb3, 0x23, 0x2d, 0x32, 0x31, 0xbd, 0x93, + 0xb7, 0xdb, 0x7d, 0xf3, 0x6f, 0x9e, 0xb9, }, + { 0xd8, 0x04, 0x9a, 0x43, 0x57, 0x9c, 0xfa, 0x90, 0xb8, 0x09, 0x3a, 0x94, 0x41, 0x6c, 0xbe, 0xfb,0xf9, 0x33, 0x86, 0xf1, 0x5b, 0x3f, 0x6e, 0x19, 0x0b, + 0x6e, 0x34, 0x55, 0xfe, 0xdf, 0xe6, 0x9a, }, + { 0x0f, 0x98, 0x83, 0xba, 0x0e, 0xf3, 0x2e, 0xe7, 0x5d, 0xed, 0x0d, 0x8b, 0xda, 0x39, 0xa5, 0x14,0x6a, 0x29, 0xf1, 0xf2, 0x50, 0x7b, 0x3b, 0xd4, 0x58, + 0xdb, 0xea, 0x0b, 0x2b, 0xb0, 0x5b, 0x4d, }, + { 0x60, 0x5c, 0x16, 0x17, 0x8a, 0x9b, 0xc8, 0x75, 0xdc, 0xbf, 0xf5, 0x4d, 0x63, 0xfe, 0x00, 0xdf,0x69, 0x9c, 0x03, 0xe8, 0xa8, 0x88, 0xe9, 0xe9, 0x4d, + 0xfb, 0xab, 0x90, 0xb2, 0x5f, 0x39, 0xb4, }, }, { - { 0xe0, 0x99, 0xbf, 0x2a, 0x4d, 0x55, 0x74, 0x60, 0xb5, 0x54, 0x44, 0x30, 0xbb, 0xf6, 0xda, 0x11,0x00, 0x4d, 0x12, 0x7c, 0xb5, 0xd6, 0x7f, 0x64, 0xab, 0x07, 0xc9, 0x4f, 0xcd, 0xf5, 0x27, 0x4f, }, - { 0xd9, 0xc5, 0x0d, 0xbe, 0x70, 0xd7, 0x14, 0xed, 0xb5, 0xe2, 0x21, 0xf4, 0xe0, 0x20, 0x61, 0x0e,0xeb, 0x62, 0x70, 0x51, 0x7e, 0x68, 0x8c, 0xa6, 0x4f, 0xb0, 0xe9, 0x8c, 0x7e, 0xf8, 0xc1, 0xc5, }, - { 0x2b, 0xee, 0xdb, 0x04, 0xb0, 0x5c, 0x69, 0x88, 0xf6, 0xa6, 0x75, 0x00, 0xbb, 0x81, 0x3f, 0xaf,0x2c, 0xae, 0x0d, 0x58, 0x0c, 0x92, 0x53, 0xb6, 0x33, 0x9e, 0x4a, 0x33, 0x37, 0xbb, 0x6c, 0x08, }, - { 0xf9, 0x6e, 0x40, 0xa1, 0xb7, 0x28, 0x40, 0x85, 0x4b, 0xb6, 0x2b, 0xc1, 0x3c, 0x40, 0xcc, 0x27,0x95, 0xe3, 0x73, 0xd4, 0xe7, 0x15, 0x98, 0x0b, 0x26, 0x14, 0x76, 0x83, 0x5a, 0x09, 0x2e, 0x0b, }, + { 0xe0, 0x99, 0xbf, 0x2a, 0x4d, 0x55, 0x74, 0x60, 0xb5, 0x54, 0x44, 0x30, 0xbb, 0xf6, 0xda, 0x11,0x00, 0x4d, 0x12, 0x7c, 0xb5, 0xd6, 0x7f, 0x64, 0xab, + 0x07, 0xc9, 0x4f, 0xcd, 0xf5, 0x27, 0x4f, }, + { 0xd9, 0xc5, 0x0d, 0xbe, 0x70, 0xd7, 0x14, 0xed, 0xb5, 0xe2, 0x21, 0xf4, 0xe0, 0x20, 0x61, 0x0e,0xeb, 0x62, 0x70, 0x51, 0x7e, 0x68, 0x8c, 0xa6, 0x4f, + 0xb0, 0xe9, 0x8c, 0x7e, 0xf8, 0xc1, 0xc5, }, + { 0x2b, 0xee, 0xdb, 0x04, 0xb0, 0x5c, 0x69, 0x88, 0xf6, 0xa6, 0x75, 0x00, 0xbb, 0x81, 0x3f, 0xaf,0x2c, 0xae, 0x0d, 0x58, 0x0c, 0x92, 0x53, 0xb6, 0x33, + 0x9e, 0x4a, 0x33, 0x37, 0xbb, 0x6c, 0x08, }, + { 0xf9, 0x6e, 0x40, 0xa1, 0xb7, 0x28, 0x40, 0x85, 0x4b, 0xb6, 0x2b, 0xc1, 0x3c, 0x40, 0xcc, 0x27,0x95, 0xe3, 0x73, 0xd4, 0xe7, 0x15, 0x98, 0x0b, 0x26, + 0x14, 0x76, 0x83, 0x5a, 0x09, 0x2e, 0x0b, }, }, { - { 0xf7, 0x5a, 0x5f, 0xe5, 0x6b, 0xda, 0x34, 0xf3, 0xc1, 0x39, 0x62, 0x96, 0x62, 0x6e, 0xf0, 0x12,0xdc, 0x07, 0xe4, 0x82, 0x58, 0x38, 0x77, 0x8a, 0x64, 0x5c, 0x82, 0x48, 0xcf, 0xf0, 0x16, 0x58, }, - { 0x33, 0xbb, 0xdf, 0x1b, 0x17, 0x72, 0xd8, 0x05, 0x9d, 0xf5, 0x68, 0xb0, 0x61, 0xf3, 0xf1, 0x12,0x2f, 0x28, 0xa8, 0xd8, 0x19, 0x16, 0x7c, 0x97, 0xbe, 0x44, 0x8e, 0x3d, 0xc3, 0xfb, 0x0c, 0x3c, }, - { 0x77, 0xc1, 0x5d, 0xcf, 0x44, 0x61, 0x0e, 0x41, 0x69, 0x6b, 0xab, 0x75, 0x89, 0x43, 0xef, 0xf1,0x40, 0x93, 0x33, 0xe4, 0xd5, 0xa1, 0x1b, 0xbe, 0x72, 0xc8, 0xf6, 0xc3, 0x95, 0xe9, 0xf8, 0x48, }, - { 0x83, 0x88, 0xfa, 0x79, 0xc4, 0xba, 0xbd, 0xca, 0x02, 0xa8, 0xe8, 0xa3, 0x4f, 0x9e, 0x43, 0x55,0x49, 0x76, 0xe4, 0x20, 0xa4, 0xad, 0x27, 0x3c, 0x81, 0xb2, 0x6e, 0x42, 0x28, 0xe9, 0xd3, 0xa3, }, + { 0xf7, 0x5a, 0x5f, 0xe5, 0x6b, 0xda, 0x34, 0xf3, 0xc1, 0x39, 0x62, 0x96, 0x62, 0x6e, 0xf0, 0x12,0xdc, 0x07, 0xe4, 0x82, 0x58, 0x38, 0x77, 0x8a, 0x64, + 0x5c, 0x82, 0x48, 0xcf, 0xf0, 0x16, 0x58, }, + { 0x33, 0xbb, 0xdf, 0x1b, 0x17, 0x72, 0xd8, 0x05, 0x9d, 0xf5, 0x68, 0xb0, 0x61, 0xf3, 0xf1, 0x12,0x2f, 0x28, 0xa8, 0xd8, 0x19, 0x16, 0x7c, 0x97, 0xbe, + 0x44, 0x8e, 0x3d, 0xc3, 0xfb, 0x0c, 0x3c, }, + { 0x77, 0xc1, 0x5d, 0xcf, 0x44, 0x61, 0x0e, 0x41, 0x69, 0x6b, 0xab, 0x75, 0x89, 0x43, 0xef, 0xf1,0x40, 0x93, 0x33, 0xe4, 0xd5, 0xa1, 0x1b, 0xbe, 0x72, + 0xc8, 0xf6, 0xc3, 0x95, 0xe9, 0xf8, 0x48, }, + { 0x83, 0x88, 0xfa, 0x79, 0xc4, 0xba, 0xbd, 0xca, 0x02, 0xa8, 0xe8, 0xa3, 0x4f, 0x9e, 0x43, 0x55,0x49, 0x76, 0xe4, 0x20, 0xa4, 0xad, 0x27, 0x3c, 0x81, + 0xb2, 0x6e, 0x42, 0x28, 0xe9, 0xd3, 0xa3, }, }, { - { 0x2d, 0xb4, 0x54, 0x0d, 0x50, 0x23, 0x07, 0x56, 0x15, 0x8a, 0xbf, 0x61, 0xd9, 0x83, 0x57, 0x12,0xb6, 0x48, 0x6c, 0x74, 0x31, 0x21, 0x83, 0xcc, 0xef, 0xca, 0xef, 0x27, 0x97, 0xb7, 0x67, 0x4d, }, - { 0x62, 0xf5, 0x7f, 0x31, 0x4e, 0x3f, 0x34, 0x95, 0xdc, 0x4e, 0x09, 0x90, 0x12, 0xf5, 0xe0, 0xba,0x71, 0x77, 0x0f, 0x96, 0x60, 0xa1, 0xea, 0xda, 0x54, 0x10, 0x4c, 0xdf, 0xde, 0x77, 0x24, 0x3e, }, - { 0x42, 0xa8, 0x3b, 0x98, 0x50, 0x11, 0xd1, 0x23, 0x03, 0xdb, 0x1a, 0x80, 0x0f, 0x26, 0x10, 0xf7,0x4a, 0xa7, 0x1c, 0xdf, 0x19, 0xc6, 0x7d, 0x54, 0xce, 0x6c, 0x9e, 0xd9, 0x51, 0xe9, 0x09, 0x3e, }, - { 0x72, 0x87, 0x7c, 0xea, 0x33, 0xcc, 0xc4, 0x71, 0x50, 0x38, 0xd4, 0xbc, 0xbd, 0xfe, 0x0e, 0x43,0xf4, 0x2a, 0x9e, 0x2c, 0x0c, 0x3b, 0x01, 0x7f, 0xc2, 0x37, 0x0f, 0x4b, 0x9a, 0xcb, 0xda, 0x4a, }, + { 0x2d, 0xb4, 0x54, 0x0d, 0x50, 0x23, 0x07, 0x56, 0x15, 0x8a, 0xbf, 0x61, 0xd9, 0x83, 0x57, 0x12,0xb6, 0x48, 0x6c, 0x74, 0x31, 0x21, 0x83, 0xcc, 0xef, + 0xca, 0xef, 0x27, 0x97, 0xb7, 0x67, 0x4d, }, + { 0x62, 0xf5, 0x7f, 0x31, 0x4e, 0x3f, 0x34, 0x95, 0xdc, 0x4e, 0x09, 0x90, 0x12, 0xf5, 0xe0, 0xba,0x71, 0x77, 0x0f, 0x96, 0x60, 0xa1, 0xea, 0xda, 0x54, + 0x10, 0x4c, 0xdf, 0xde, 0x77, 0x24, 0x3e, }, + { 0x42, 0xa8, 0x3b, 0x98, 0x50, 0x11, 0xd1, 0x23, 0x03, 0xdb, 0x1a, 0x80, 0x0f, 0x26, 0x10, 0xf7,0x4a, 0xa7, 0x1c, 0xdf, 0x19, 0xc6, 0x7d, 0x54, 0xce, + 0x6c, 0x9e, 0xd9, 0x51, 0xe9, 0x09, 0x3e, }, + { 0x72, 0x87, 0x7c, 0xea, 0x33, 0xcc, 0xc4, 0x71, 0x50, 0x38, 0xd4, 0xbc, 0xbd, 0xfe, 0x0e, 0x43,0xf4, 0x2a, 0x9e, 0x2c, 0x0c, 0x3b, 0x01, 0x7f, 0xc2, + 0x37, 0x0f, 0x4b, 0x9a, 0xcb, 0xda, 0x4a, }, }, { - { 0xcd, 0x94, 0xfc, 0x94, 0x97, 0xe8, 0x99, 0x07, 0x50, 0x30, 0x9e, 0x9a, 0x85, 0x34, 0xfd, 0x11,0x4b, 0x0a, 0x6e, 0x54, 0xda, 0x89, 0xc4, 0x79, 0x61, 0x01, 0x89, 0x70, 0x41, 0xd1, 0x4e, 0xcb, }, - { 0xc3, 0xde, 0xf4, 0xb5, 0xfe, 0x04, 0xfa, 0xee, 0x0a, 0x11, 0x93, 0x22, 0x29, 0xff, 0xf5, 0x63,0x63, 0x7b, 0xfd, 0xee, 0x0e, 0x79, 0xc6, 0xde, 0xea, 0xf4, 0x49, 0xf8, 0x54, 0x01, 0xc5, 0xc4, }, - { 0xce, 0xed, 0x35, 0x50, 0x7b, 0x5c, 0x93, 0xea, 0xd5, 0x98, 0x91, 0x19, 0xb9, 0xba, 0x34, 0x2c,0xfe, 0x38, 0xe6, 0xe6, 0x38, 0xba, 0x6e, 0xea, 0x34, 0x3a, 0x55, 0x47, 0x5d, 0xe2, 0x80, 0x0b, }, - { 0xe4, 0xe7, 0x40, 0x8d, 0x85, 0xff, 0x0e, 0x0e, 0x9c, 0x83, 0x80, 0x03, 0xf2, 0x8c, 0xdb, 0xd5,0x24, 0x7c, 0xdc, 0xe3, 0x1f, 0x32, 0xf6, 0x24, 0x94, 0xb7, 0x0e, 0x5f, 0x1b, 0xc3, 0x63, 0x07, }, + { 0xcd, 0x94, 0xfc, 0x94, 0x97, 0xe8, 0x99, 0x07, 0x50, 0x30, 0x9e, 0x9a, 0x85, 0x34, 0xfd, 0x11,0x4b, 0x0a, 0x6e, 0x54, 0xda, 0x89, 0xc4, 0x79, 0x61, + 0x01, 0x89, 0x70, 0x41, 0xd1, 0x4e, 0xcb, }, + { 0xc3, 0xde, 0xf4, 0xb5, 0xfe, 0x04, 0xfa, 0xee, 0x0a, 0x11, 0x93, 0x22, 0x29, 0xff, 0xf5, 0x63,0x63, 0x7b, 0xfd, 0xee, 0x0e, 0x79, 0xc6, 0xde, 0xea, + 0xf4, 0x49, 0xf8, 0x54, 0x01, 0xc5, 0xc4, }, + { 0xce, 0xed, 0x35, 0x50, 0x7b, 0x5c, 0x93, 0xea, 0xd5, 0x98, 0x91, 0x19, 0xb9, 0xba, 0x34, 0x2c,0xfe, 0x38, 0xe6, 0xe6, 0x38, 0xba, 0x6e, 0xea, 0x34, + 0x3a, 0x55, 0x47, 0x5d, 0xe2, 0x80, 0x0b, }, + { 0xe4, 0xe7, 0x40, 0x8d, 0x85, 0xff, 0x0e, 0x0e, 0x9c, 0x83, 0x80, 0x03, 0xf2, 0x8c, 0xdb, 0xd5,0x24, 0x7c, 0xdc, 0xe3, 0x1f, 0x32, 0xf6, 0x24, 0x94, + 0xb7, 0x0e, 0x5f, 0x1b, 0xc3, 0x63, 0x07, }, }, { - { 0x15, 0xb9, 0xe4, 0x67, 0xaf, 0x4d, 0x29, 0x0c, 0x41, 0x74, 0x02, 0xe0, 0x40, 0x42, 0x6f, 0xe4,0xcf, 0x23, 0x6b, 0xae, 0x72, 0xba, 0xa3, 0x92, 0xed, 0x89, 0x78, 0x0d, 0xfc, 0xcd, 0xb4, 0x71, }, - { 0xcd, 0xf4, 0xe9, 0x17, 0x0f, 0xb9, 0x04, 0x30, 0x2b, 0x8f, 0xd9, 0x3a, 0x82, 0x0b, 0xa8, 0xcc,0x7e, 0xd4, 0xef, 0xd3, 0xa6, 0xf2, 0xd6, 0xb0, 0x5b, 0x80, 0xb2, 0xff, 0x2a, 0xee, 0x4e, 0x77, }, - { 0x43, 0xe0, 0xe9, 0xd9, 0x5a, 0xf4, 0xdc, 0x36, 0x48, 0x3c, 0xdd, 0x19, 0x68, 0xd2, 0xb7, 0xee,0xb8, 0x61, 0x1f, 0xcc, 0xe7, 0x7f, 0x3a, 0x4e, 0x7d, 0x05, 0x9a, 0xe4, 0x3e, 0x50, 0x96, 0x04, }, - { 0xed, 0x56, 0xbc, 0xf6, 0x95, 0xb7, 0x34, 0x14, 0x2c, 0x24, 0xec, 0xb1, 0xfc, 0x1b, 0xb6, 0x4d,0x08, 0xf1, 0x75, 0xeb, 0x24, 0x3a, 0x31, 0xf3, 0x7b, 0x3d, 0x9b, 0xb4, 0x40, 0x7f, 0x3b, 0x96, }, + { 0x15, 0xb9, 0xe4, 0x67, 0xaf, 0x4d, 0x29, 0x0c, 0x41, 0x74, 0x02, 0xe0, 0x40, 0x42, 0x6f, 0xe4,0xcf, 0x23, 0x6b, 0xae, 0x72, 0xba, 0xa3, 0x92, 0xed, + 0x89, 0x78, 0x0d, 0xfc, 0xcd, 0xb4, 0x71, }, + { 0xcd, 0xf4, 0xe9, 0x17, 0x0f, 0xb9, 0x04, 0x30, 0x2b, 0x8f, 0xd9, 0x3a, 0x82, 0x0b, 0xa8, 0xcc,0x7e, 0xd4, 0xef, 0xd3, 0xa6, 0xf2, 0xd6, 0xb0, 0x5b, + 0x80, 0xb2, 0xff, 0x2a, 0xee, 0x4e, 0x77, }, + { 0x43, 0xe0, 0xe9, 0xd9, 0x5a, 0xf4, 0xdc, 0x36, 0x48, 0x3c, 0xdd, 0x19, 0x68, 0xd2, 0xb7, 0xee,0xb8, 0x61, 0x1f, 0xcc, 0xe7, 0x7f, 0x3a, 0x4e, 0x7d, + 0x05, 0x9a, 0xe4, 0x3e, 0x50, 0x96, 0x04, }, + { 0xed, 0x56, 0xbc, 0xf6, 0x95, 0xb7, 0x34, 0x14, 0x2c, 0x24, 0xec, 0xb1, 0xfc, 0x1b, 0xb6, 0x4d,0x08, 0xf1, 0x75, 0xeb, 0x24, 0x3a, 0x31, 0xf3, 0x7b, + 0x3d, 0x9b, 0xb4, 0x40, 0x7f, 0x3b, 0x96, }, }, { - { 0x49, 0xc5, 0x03, 0xba, 0x6c, 0x4f, 0xa6, 0x05, 0x18, 0x2e, 0x18, 0x6b, 0x5e, 0x81, 0x11, 0x3f,0x07, 0x5b, 0xc1, 0x1d, 0xcf, 0xd5, 0x1c, 0x93, 0x2f, 0xb2, 0x1e, 0x95, 0x1e, 0xee, 0x2f, 0xa1, }, - { 0x8a, 0xf7, 0x06, 0xff, 0x09, 0x22, 0xd8, 0x7b, 0x3f, 0x0c, 0x5e, 0x4e, 0x31, 0xd8, 0xb2, 0x59,0xae, 0xb2, 0x60, 0xa9, 0x26, 0x96, 0x43, 0xed, 0x52, 0x0a, 0x13, 0xbb, 0x25, 0xda, 0x59, 0x24, }, - { 0xb2, 0xf3, 0x60, 0x0d, 0xf3, 0x36, 0x8e, 0xf8, 0xa0, 0xbb, 0x85, 0xab, 0x22, 0xf4, 0x1f, 0xc0,0xe5, 0xf4, 0xfd, 0xd5, 0x4b, 0xe8, 0x16, 0x7a, 0x5c, 0x3c, 0xd4, 0xb0, 0x8d, 0xb0, 0x49, 0x03, }, - { 0xbc, 0x5c, 0x70, 0x55, 0x08, 0x9f, 0xc9, 0xd6, 0xc8, 0x9f, 0x83, 0xc1, 0xea, 0x1a, 0xda, 0x87,0x9d, 0x99, 0x34, 0xb2, 0xea, 0x28, 0xfc, 0xf4, 0xe4, 0xa7, 0xe9, 0x84, 0xb2, 0x8a, 0xd2, 0xcf, }, + { 0x49, 0xc5, 0x03, 0xba, 0x6c, 0x4f, 0xa6, 0x05, 0x18, 0x2e, 0x18, 0x6b, 0x5e, 0x81, 0x11, 0x3f,0x07, 0x5b, 0xc1, 0x1d, 0xcf, 0xd5, 0x1c, 0x93, 0x2f, + 0xb2, 0x1e, 0x95, 0x1e, 0xee, 0x2f, 0xa1, }, + { 0x8a, 0xf7, 0x06, 0xff, 0x09, 0x22, 0xd8, 0x7b, 0x3f, 0x0c, 0x5e, 0x4e, 0x31, 0xd8, 0xb2, 0x59,0xae, 0xb2, 0x60, 0xa9, 0x26, 0x96, 0x43, 0xed, 0x52, + 0x0a, 0x13, 0xbb, 0x25, 0xda, 0x59, 0x24, }, + { 0xb2, 0xf3, 0x60, 0x0d, 0xf3, 0x36, 0x8e, 0xf8, 0xa0, 0xbb, 0x85, 0xab, 0x22, 0xf4, 0x1f, 0xc0,0xe5, 0xf4, 0xfd, 0xd5, 0x4b, 0xe8, 0x16, 0x7a, 0x5c, + 0x3c, 0xd4, 0xb0, 0x8d, 0xb0, 0x49, 0x03, }, + { 0xbc, 0x5c, 0x70, 0x55, 0x08, 0x9f, 0xc9, 0xd6, 0xc8, 0x9f, 0x83, 0xc1, 0xea, 0x1a, 0xda, 0x87,0x9d, 0x99, 0x34, 0xb2, 0xea, 0x28, 0xfc, 0xf4, 0xe4, + 0xa7, 0xe9, 0x84, 0xb2, 0x8a, 0xd2, 0xcf, }, }, { - { 0x19, 0xb3, 0x8d, 0xe3, 0x9f, 0xdd, 0x2f, 0x70, 0xf7, 0x09, 0x16, 0x31, 0xa4, 0xf7, 0x5d, 0x19,0x93, 0x74, 0x0b, 0xa9, 0x42, 0x91, 0x62, 0xc2, 0xa4, 0x53, 0x12, 0x40, 0x16, 0x36, 0xb2, 0x9c, }, - { 0x09, 0xae, 0xd7, 0x23, 0x2b, 0x28, 0xe0, 0x60, 0x94, 0x17, 0x41, 0xb6, 0x82, 0x8b, 0xcd, 0xfa,0x2b, 0xc4, 0x9c, 0xc8, 0x44, 0xf3, 0x77, 0x36, 0x11, 0x50, 0x4f, 0x82, 0xa3, 0x90, 0xa5, 0xae, }, - { 0x40, 0x02, 0x53, 0x43, 0x07, 0xf8, 0xb6, 0x2a, 0x9b, 0xf6, 0x7f, 0xf6, 0x41, 0xdd, 0xc6, 0x0f,0xef, 0x59, 0x3b, 0x17, 0xc3, 0x34, 0x12, 0x39, 0xe9, 0x5b, 0xdb, 0x3e, 0x57, 0x9b, 0xfd, 0xc8, }, - { 0x9a, 0x4e, 0x8e, 0x65, 0x7f, 0x6b, 0x0e, 0x09, 0x7f, 0x47, 0x95, 0x4a, 0x63, 0xc7, 0x5d, 0x74,0xfc, 0xba, 0x71, 0xa3, 0x0d, 0x83, 0x65, 0x1e, 0x3e, 0x5a, 0x91, 0xaa, 0x7c, 0xcd, 0x83, 0x43, }, + { 0x19, 0xb3, 0x8d, 0xe3, 0x9f, 0xdd, 0x2f, 0x70, 0xf7, 0x09, 0x16, 0x31, 0xa4, 0xf7, 0x5d, 0x19,0x93, 0x74, 0x0b, 0xa9, 0x42, 0x91, 0x62, 0xc2, 0xa4, + 0x53, 0x12, 0x40, 0x16, 0x36, 0xb2, 0x9c, }, + { 0x09, 0xae, 0xd7, 0x23, 0x2b, 0x28, 0xe0, 0x60, 0x94, 0x17, 0x41, 0xb6, 0x82, 0x8b, 0xcd, 0xfa,0x2b, 0xc4, 0x9c, 0xc8, 0x44, 0xf3, 0x77, 0x36, 0x11, + 0x50, 0x4f, 0x82, 0xa3, 0x90, 0xa5, 0xae, }, + { 0x40, 0x02, 0x53, 0x43, 0x07, 0xf8, 0xb6, 0x2a, 0x9b, 0xf6, 0x7f, 0xf6, 0x41, 0xdd, 0xc6, 0x0f,0xef, 0x59, 0x3b, 0x17, 0xc3, 0x34, 0x12, 0x39, 0xe9, + 0x5b, 0xdb, 0x3e, 0x57, 0x9b, 0xfd, 0xc8, }, + { 0x9a, 0x4e, 0x8e, 0x65, 0x7f, 0x6b, 0x0e, 0x09, 0x7f, 0x47, 0x95, 0x4a, 0x63, 0xc7, 0x5d, 0x74,0xfc, 0xba, 0x71, 0xa3, 0x0d, 0x83, 0x65, 0x1e, 0x3e, + 0x5a, 0x91, 0xaa, 0x7c, 0xcd, 0x83, 0x43, }, }, { - { 0x2c, 0x91, 0xc6, 0x1f, 0x33, 0xad, 0xfe, 0x93, 0x11, 0xc9, 0x42, 0xfd, 0xbf, 0xf6, 0xba, 0x47,0x02, 0x0f, 0xef, 0xf4, 0x16, 0xb7, 0xbb, 0x63, 0xce, 0xc1, 0x3f, 0xaf, 0x9b, 0x09, 0x99, 0x54, }, - { 0x6c, 0xab, 0x31, 0xb0, 0x64, 0x19, 0xe5, 0x22, 0x1f, 0xca, 0x01, 0x4f, 0xb8, 0x4e, 0xc8, 0x70,0x62, 0x2a, 0x1b, 0x12, 0xba, 0xb5, 0xae, 0x43, 0x68, 0x2a, 0xa7, 0xea, 0x73, 0xea, 0x08, 0xd0, }, - { 0x4d, 0xfa, 0x12, 0xde, 0xfc, 0x60, 0x31, 0x90, 0x21, 0xb6, 0x81, 0xb3, 0xff, 0x84, 0xa1, 0x0a,0x51, 0x19, 0x58, 0xc8, 0x50, 0x93, 0x9e, 0xd4, 0x56, 0x35, 0x93, 0x4b, 0xa4, 0x97, 0x91, 0x47, }, - { 0x3c, 0xa1, 0xfc, 0x7a, 0xd8, 0x58, 0xfb, 0x1a, 0x6a, 0xba, 0x23, 0x25, 0x42, 0xf3, 0xe2, 0xa7,0x49, 0xff, 0xc7, 0x20, 0x3a, 0x23, 0x74, 0xa3, 0xf3, 0xd3, 0x26, 0x7f, 0x1f, 0xc9, 0x7b, 0x78, }, + { 0x2c, 0x91, 0xc6, 0x1f, 0x33, 0xad, 0xfe, 0x93, 0x11, 0xc9, 0x42, 0xfd, 0xbf, 0xf6, 0xba, 0x47,0x02, 0x0f, 0xef, 0xf4, 0x16, 0xb7, 0xbb, 0x63, 0xce, + 0xc1, 0x3f, 0xaf, 0x9b, 0x09, 0x99, 0x54, }, + { 0x6c, 0xab, 0x31, 0xb0, 0x64, 0x19, 0xe5, 0x22, 0x1f, 0xca, 0x01, 0x4f, 0xb8, 0x4e, 0xc8, 0x70,0x62, 0x2a, 0x1b, 0x12, 0xba, 0xb5, 0xae, 0x43, 0x68, + 0x2a, 0xa7, 0xea, 0x73, 0xea, 0x08, 0xd0, }, + { 0x4d, 0xfa, 0x12, 0xde, 0xfc, 0x60, 0x31, 0x90, 0x21, 0xb6, 0x81, 0xb3, 0xff, 0x84, 0xa1, 0x0a,0x51, 0x19, 0x58, 0xc8, 0x50, 0x93, 0x9e, 0xd4, 0x56, + 0x35, 0x93, 0x4b, 0xa4, 0x97, 0x91, 0x47, }, + { 0x3c, 0xa1, 0xfc, 0x7a, 0xd8, 0x58, 0xfb, 0x1a, 0x6a, 0xba, 0x23, 0x25, 0x42, 0xf3, 0xe2, 0xa7,0x49, 0xff, 0xc7, 0x20, 0x3a, 0x23, 0x74, 0xa3, 0xf3, + 0xd3, 0x26, 0x7f, 0x1f, 0xc9, 0x7b, 0x78, }, }, { - { 0xa2, 0x8a, 0x2e, 0xdf, 0x58, 0x02, 0x56, 0x68, 0xf7, 0x24, 0xaa, 0xf8, 0x3a, 0x50, 0x95, 0x6b,0x7a, 0xc1, 0xcf, 0xbb, 0xff, 0x79, 0xb0, 0x8c, 0x3b, 0xf8, 0x7d, 0xfd, 0x28, 0x28, 0xd7, 0x67, }, - { 0xdf, 0xa7, 0xbf, 0xff, 0xd4, 0xc7, 0x66, 0xb8, 0x6a, 0xbe, 0xaf, 0x5c, 0x99, 0xb6, 0xe5, 0x0c,0xb9, 0xcc, 0xc9, 0xd9, 0xd0, 0x0b, 0x7f, 0xfc, 0x78, 0x04, 0xb0, 0x49, 0x1b, 0x67, 0xbc, 0x03, }, - { 0x13, 0x31, 0xf6, 0xd8, 0x74, 0xa4, 0xed, 0x3b, 0xc4, 0xa2, 0xc6, 0xe9, 0xc7, 0x43, 0x31, 0xd3,0x03, 0x97, 0x96, 0x31, 0x4b, 0xee, 0xe3, 0xb7, 0x15, 0x2f, 0xcd, 0xba, 0x55, 0x56, 0x30, 0x4e, }, - { 0x1a, 0xaa, 0xbe, 0x7e, 0xe6, 0xe4, 0xa6, 0xfa, 0x73, 0x22, 0x91, 0x20, 0x24, 0x33, 0xa2, 0x37,0xdf, 0x1b, 0x49, 0xbc, 0x53, 0x86, 0x6b, 0xfb, 0xe0, 0x0d, 0xb9, 0x6a, 0x0f, 0x58, 0x22, 0x4f, }, + { 0xa2, 0x8a, 0x2e, 0xdf, 0x58, 0x02, 0x56, 0x68, 0xf7, 0x24, 0xaa, 0xf8, 0x3a, 0x50, 0x95, 0x6b,0x7a, 0xc1, 0xcf, 0xbb, 0xff, 0x79, 0xb0, 0x8c, 0x3b, + 0xf8, 0x7d, 0xfd, 0x28, 0x28, 0xd7, 0x67, }, + { 0xdf, 0xa7, 0xbf, 0xff, 0xd4, 0xc7, 0x66, 0xb8, 0x6a, 0xbe, 0xaf, 0x5c, 0x99, 0xb6, 0xe5, 0x0c,0xb9, 0xcc, 0xc9, 0xd9, 0xd0, 0x0b, 0x7f, 0xfc, 0x78, + 0x04, 0xb0, 0x49, 0x1b, 0x67, 0xbc, 0x03, }, + { 0x13, 0x31, 0xf6, 0xd8, 0x74, 0xa4, 0xed, 0x3b, 0xc4, 0xa2, 0xc6, 0xe9, 0xc7, 0x43, 0x31, 0xd3,0x03, 0x97, 0x96, 0x31, 0x4b, 0xee, 0xe3, 0xb7, 0x15, + 0x2f, 0xcd, 0xba, 0x55, 0x56, 0x30, 0x4e, }, + { 0x1a, 0xaa, 0xbe, 0x7e, 0xe6, 0xe4, 0xa6, 0xfa, 0x73, 0x22, 0x91, 0x20, 0x24, 0x33, 0xa2, 0x37,0xdf, 0x1b, 0x49, 0xbc, 0x53, 0x86, 0x6b, 0xfb, 0xe0, + 0x0d, 0xb9, 0x6a, 0x0f, 0x58, 0x22, 0x4f, }, }, { - { 0xa2, 0xef, 0x85, 0x7a, 0x08, 0x1f, 0x9d, 0x6e, 0xb2, 0x06, 0xa8, 0x1c, 0x4c, 0xf7, 0x8a, 0x80,0x2b, 0xdf, 0x59, 0x8a, 0xe3, 0x80, 0xc8, 0x88, 0x6e, 0xcd, 0x85, 0xfd, 0xc1, 0xed, 0x76, 0x44, }, - { 0x56, 0x3c, 0x4c, 0x20, 0x41, 0x9f, 0x07, 0xbc, 0x17, 0xd0, 0x53, 0x9f, 0xad, 0xe1, 0x85, 0x5e,0x34, 0x83, 0x95, 0x15, 0xb8, 0x92, 0xc0, 0xf5, 0xd2, 0x65, 0x61, 0xf9, 0x7f, 0xa0, 0x4d, 0x1a, }, - { 0xdd, 0x5e, 0x9f, 0x70, 0xae, 0x74, 0x00, 0x73, 0xca, 0x02, 0x04, 0xdf, 0x60, 0x76, 0x3f, 0xb6,0x03, 0x6c, 0x45, 0x70, 0x9b, 0xf4, 0xa7, 0xbb, 0x4e, 0x67, 0x14, 0x12, 0xfa, 0xd6, 0x5d, 0xa3, }, - { 0x43, 0x0e, 0x6a, 0x4f, 0xba, 0x44, 0x49, 0xd7, 0x00, 0xd2, 0x73, 0x3e, 0x55, 0x7f, 0x66, 0xa3,0xbf, 0x3d, 0x50, 0x51, 0x7c, 0x12, 0x71, 0xb1, 0xdd, 0xae, 0x11, 0x61, 0xb7, 0xac, 0x79, 0x8c, }, + { 0xa2, 0xef, 0x85, 0x7a, 0x08, 0x1f, 0x9d, 0x6e, 0xb2, 0x06, 0xa8, 0x1c, 0x4c, 0xf7, 0x8a, 0x80,0x2b, 0xdf, 0x59, 0x8a, 0xe3, 0x80, 0xc8, 0x88, 0x6e, + 0xcd, 0x85, 0xfd, 0xc1, 0xed, 0x76, 0x44, }, + { 0x56, 0x3c, 0x4c, 0x20, 0x41, 0x9f, 0x07, 0xbc, 0x17, 0xd0, 0x53, 0x9f, 0xad, 0xe1, 0x85, 0x5e,0x34, 0x83, 0x95, 0x15, 0xb8, 0x92, 0xc0, 0xf5, 0xd2, + 0x65, 0x61, 0xf9, 0x7f, 0xa0, 0x4d, 0x1a, }, + { 0xdd, 0x5e, 0x9f, 0x70, 0xae, 0x74, 0x00, 0x73, 0xca, 0x02, 0x04, 0xdf, 0x60, 0x76, 0x3f, 0xb6,0x03, 0x6c, 0x45, 0x70, 0x9b, 0xf4, 0xa7, 0xbb, 0x4e, + 0x67, 0x14, 0x12, 0xfa, 0xd6, 0x5d, 0xa3, }, + { 0x43, 0x0e, 0x6a, 0x4f, 0xba, 0x44, 0x49, 0xd7, 0x00, 0xd2, 0x73, 0x3e, 0x55, 0x7f, 0x66, 0xa3,0xbf, 0x3d, 0x50, 0x51, 0x7c, 0x12, 0x71, 0xb1, 0xdd, + 0xae, 0x11, 0x61, 0xb7, 0xac, 0x79, 0x8c, }, }, { - { 0xcc, 0xd8, 0xa2, 0xd8, 0x6b, 0xc9, 0x2f, 0x2e, 0x01, 0xbc, 0xe4, 0xd6, 0x92, 0x2c, 0xf7, 0xfe,0x16, 0x26, 0xae, 0xd0, 0x44, 0x68, 0x5e, 0x95, 0xe2, 0xee, 0xbd, 0x46, 0x45, 0x05, 0xf0, 0x1f, }, - { 0xe9, 0xdd, 0xd5, 0x83, 0xa9, 0x63, 0x5a, 0x66, 0x77, 0x77, 0xd5, 0xb8, 0xa8, 0xf3, 0x1b, 0x0f,0x79, 0xeb, 0xa1, 0x2c, 0x75, 0x02, 0x34, 0x10, 0xb5, 0x4b, 0x85, 0x67, 0xdd, 0xdc, 0x0f, 0x38, }, - { 0x5a, 0xe0, 0x26, 0xcf, 0xc0, 0x60, 0xd5, 0x56, 0x00, 0x71, 0x7e, 0x55, 0xb8, 0xa1, 0x2e, 0x11,0x6d, 0x1d, 0x0d, 0xf3, 0x4a, 0xf8, 0x31, 0x97, 0x90, 0x57, 0x60, 0x7c, 0x2d, 0x9c, 0x2f, 0x76, }, - { 0x1c, 0xe9, 0xe6, 0x74, 0x05, 0x29, 0x49, 0x9f, 0x98, 0xd1, 0xf1, 0xd7, 0x13, 0x29, 0x14, 0x7a,0x33, 0xdf, 0x1d, 0x05, 0xe4, 0x76, 0x5b, 0x53, 0x9b, 0x11, 0xcf, 0x61, 0x5d, 0x69, 0x74, 0xd3, }, + { 0xcc, 0xd8, 0xa2, 0xd8, 0x6b, 0xc9, 0x2f, 0x2e, 0x01, 0xbc, 0xe4, 0xd6, 0x92, 0x2c, 0xf7, 0xfe,0x16, 0x26, 0xae, 0xd0, 0x44, 0x68, 0x5e, 0x95, 0xe2, + 0xee, 0xbd, 0x46, 0x45, 0x05, 0xf0, 0x1f, }, + { 0xe9, 0xdd, 0xd5, 0x83, 0xa9, 0x63, 0x5a, 0x66, 0x77, 0x77, 0xd5, 0xb8, 0xa8, 0xf3, 0x1b, 0x0f,0x79, 0xeb, 0xa1, 0x2c, 0x75, 0x02, 0x34, 0x10, 0xb5, + 0x4b, 0x85, 0x67, 0xdd, 0xdc, 0x0f, 0x38, }, + { 0x5a, 0xe0, 0x26, 0xcf, 0xc0, 0x60, 0xd5, 0x56, 0x00, 0x71, 0x7e, 0x55, 0xb8, 0xa1, 0x2e, 0x11,0x6d, 0x1d, 0x0d, 0xf3, 0x4a, 0xf8, 0x31, 0x97, 0x90, + 0x57, 0x60, 0x7c, 0x2d, 0x9c, 0x2f, 0x76, }, + { 0x1c, 0xe9, 0xe6, 0x74, 0x05, 0x29, 0x49, 0x9f, 0x98, 0xd1, 0xf1, 0xd7, 0x13, 0x29, 0x14, 0x7a,0x33, 0xdf, 0x1d, 0x05, 0xe4, 0x76, 0x5b, 0x53, 0x9b, + 0x11, 0xcf, 0x61, 0x5d, 0x69, 0x74, 0xd3, }, }, { - { 0xc1, 0x88, 0xff, 0xc8, 0x94, 0x7f, 0x73, 0x01, 0xfb, 0x7b, 0x53, 0xe3, 0x67, 0x46, 0x09, 0x7c,0x21, 0x34, 0xbf, 0x9c, 0xc9, 0x81, 0xba, 0x74, 0xb4, 0xe9, 0xc4, 0x36, 0x1f, 0x59, 0x5e, 0x4e, }, - { 0xbf, 0x7d, 0x2f, 0x20, 0x56, 0xe7, 0x24, 0x21, 0xef, 0x39, 0x3f, 0x0c, 0x0f, 0x2b, 0x0e, 0x00,0x13, 0x0e, 0x3c, 0xac, 0x4a, 0xbb, 0xcc, 0x00, 0x28, 0x61, 0x68, 0xe8, 0x5e, 0xc5, 0x50, 0x51, }, - { 0xb6, 0x01, 0xac, 0x42, 0x5d, 0x5d, 0xbf, 0x9e, 0x17, 0x35, 0xc5, 0xe2, 0xd5, 0xbd, 0xb7, 0x9c,0xa9, 0x8b, 0x3d, 0x5b, 0xe4, 0xa2, 0xcf, 0xd6, 0xf2, 0x27, 0x3f, 0x15, 0x0e, 0x06, 0x4d, 0x9d, }, - { 0x46, 0x90, 0xe3, 0x74, 0x3c, 0x07, 0xd6, 0x43, 0xf1, 0xbc, 0x18, 0x36, 0x36, 0xab, 0x2a, 0x9c,0xb9, 0x36, 0xa6, 0x0a, 0x80, 0x21, 0x13, 0xc4, 0x9b, 0xb1, 0xb3, 0xf2, 0xd0, 0x66, 0x16, 0x60, }, + { 0xc1, 0x88, 0xff, 0xc8, 0x94, 0x7f, 0x73, 0x01, 0xfb, 0x7b, 0x53, 0xe3, 0x67, 0x46, 0x09, 0x7c,0x21, 0x34, 0xbf, 0x9c, 0xc9, 0x81, 0xba, 0x74, 0xb4, + 0xe9, 0xc4, 0x36, 0x1f, 0x59, 0x5e, 0x4e, }, + { 0xbf, 0x7d, 0x2f, 0x20, 0x56, 0xe7, 0x24, 0x21, 0xef, 0x39, 0x3f, 0x0c, 0x0f, 0x2b, 0x0e, 0x00,0x13, 0x0e, 0x3c, 0xac, 0x4a, 0xbb, 0xcc, 0x00, 0x28, + 0x61, 0x68, 0xe8, 0x5e, 0xc5, 0x50, 0x51, }, + { 0xb6, 0x01, 0xac, 0x42, 0x5d, 0x5d, 0xbf, 0x9e, 0x17, 0x35, 0xc5, 0xe2, 0xd5, 0xbd, 0xb7, 0x9c,0xa9, 0x8b, 0x3d, 0x5b, 0xe4, 0xa2, 0xcf, 0xd6, 0xf2, + 0x27, 0x3f, 0x15, 0x0e, 0x06, 0x4d, 0x9d, }, + { 0x46, 0x90, 0xe3, 0x74, 0x3c, 0x07, 0xd6, 0x43, 0xf1, 0xbc, 0x18, 0x36, 0x36, 0xab, 0x2a, 0x9c,0xb9, 0x36, 0xa6, 0x0a, 0x80, 0x21, 0x13, 0xc4, 0x9b, + 0xb1, 0xb3, 0xf2, 0xd0, 0x66, 0x16, 0x60, }, }, { - { 0x31, 0x7e, 0x10, 0x20, 0xff, 0x53, 0xfc, 0xce, 0xf1, 0x8b, 0xf4, 0x7b, 0xb7, 0xf2, 0xdd, 0x77,0x07, 0xfb, 0x7b, 0x7a, 0x75, 0x78, 0xe0, 0x4f, 0x35, 0xb3, 0xbe, 0xed, 0x22, 0x2a, 0x0e, 0xb6, }, - { 0x09, 0x42, 0x0c, 0xe5, 0xa1, 0x9d, 0x77, 0xc6, 0xfe, 0x1e, 0xe5, 0x87, 0xe6, 0xa4, 0x9f, 0xba,0xf8, 0xf2, 0x80, 0xe8, 0xdf, 0x03, 0x3d, 0x75, 0x40, 0x33, 0x02, 0xe5, 0xa2, 0x7d, 0xb2, 0xae, }, - { 0xfe, 0xfb, 0x1d, 0xda, 0x18, 0x45, 0x31, 0x2b, 0x5f, 0xce, 0x6b, 0x81, 0xb2, 0xbe, 0x20, 0x5a,0xf2, 0xf3, 0xa2, 0x74, 0xf5, 0xa2, 0x12, 0xf6, 0x6c, 0x0d, 0x9f, 0xc3, 0x3d, 0x7a, 0xe5, 0x35, }, - { 0x30, 0xc2, 0x26, 0x1b, 0xd0, 0x00, 0x4e, 0x61, 0xfe, 0xda, 0x2c, 0x16, 0xaa, 0x5e, 0x21, 0xff,0xa8, 0xd7, 0xe7, 0xf7, 0xdb, 0xf6, 0xec, 0x37, 0x9a, 0x43, 0xb4, 0x8e, 0x4b, 0x36, 0xae, 0xb0, }, + { 0x31, 0x7e, 0x10, 0x20, 0xff, 0x53, 0xfc, 0xce, 0xf1, 0x8b, 0xf4, 0x7b, 0xb7, 0xf2, 0xdd, 0x77,0x07, 0xfb, 0x7b, 0x7a, 0x75, 0x78, 0xe0, 0x4f, 0x35, + 0xb3, 0xbe, 0xed, 0x22, 0x2a, 0x0e, 0xb6, }, + { 0x09, 0x42, 0x0c, 0xe5, 0xa1, 0x9d, 0x77, 0xc6, 0xfe, 0x1e, 0xe5, 0x87, 0xe6, 0xa4, 0x9f, 0xba,0xf8, 0xf2, 0x80, 0xe8, 0xdf, 0x03, 0x3d, 0x75, 0x40, + 0x33, 0x02, 0xe5, 0xa2, 0x7d, 0xb2, 0xae, }, + { 0xfe, 0xfb, 0x1d, 0xda, 0x18, 0x45, 0x31, 0x2b, 0x5f, 0xce, 0x6b, 0x81, 0xb2, 0xbe, 0x20, 0x5a,0xf2, 0xf3, 0xa2, 0x74, 0xf5, 0xa2, 0x12, 0xf6, 0x6c, + 0x0d, 0x9f, 0xc3, 0x3d, 0x7a, 0xe5, 0x35, }, + { 0x30, 0xc2, 0x26, 0x1b, 0xd0, 0x00, 0x4e, 0x61, 0xfe, 0xda, 0x2c, 0x16, 0xaa, 0x5e, 0x21, 0xff,0xa8, 0xd7, 0xe7, 0xf7, 0xdb, 0xf6, 0xec, 0x37, 0x9a, + 0x43, 0xb4, 0x8e, 0x4b, 0x36, 0xae, 0xb0, }, }, { - { 0x45, 0xfb, 0x02, 0xb2, 0xce, 0xb9, 0xd7, 0xc7, 0x9d, 0x9c, 0x2f, 0xa9, 0x3e, 0x9c, 0x79, 0x67,0xc2, 0xfa, 0x4d, 0xf5, 0x78, 0x9f, 0x96, 0x40, 0xb2, 0x42, 0x64, 0xb1, 0xe5, 0x24, 0xfc, 0xb1, }, - { 0x5c, 0x6e, 0x8e, 0xcf, 0x1f, 0x7d, 0x30, 0x23, 0x89, 0x3b, 0x7b, 0x1c, 0xa1, 0xe4, 0xd1, 0x78,0x97, 0x2e, 0xe2, 0xa2, 0x30, 0x75, 0x7d, 0xdc, 0x56, 0x4f, 0xfe, 0x37, 0xf5, 0xc5, 0xa3, 0x21, }, - { 0x33, 0x4a, 0xe0, 0xc4, 0x69, 0x3d, 0x23, 0x93, 0x5a, 0x7e, 0x8e, 0x04, 0x3e, 0xbb, 0xde, 0x21,0xe1, 0x68, 0xa7, 0xcb, 0xa3, 0xfa, 0x50, 0x7c, 0x9b, 0xe4, 0x1d, 0x76, 0x81, 0xe0, 0x49, 0xce, }, - { 0x2a, 0xda, 0xe4, 0xa1, 0x38, 0xa2, 0x39, 0xdc, 0xd9, 0x3c, 0x24, 0x3a, 0x38, 0x03, 0xc3, 0xe4,0xcf, 0x96, 0xe3, 0x7f, 0xe1, 0x4e, 0x6a, 0x9b, 0x71, 0x7b, 0xe9, 0x59, 0x99, 0x59, 0xb1, 0x1c, }, + { 0x45, 0xfb, 0x02, 0xb2, 0xce, 0xb9, 0xd7, 0xc7, 0x9d, 0x9c, 0x2f, 0xa9, 0x3e, 0x9c, 0x79, 0x67,0xc2, 0xfa, 0x4d, 0xf5, 0x78, 0x9f, 0x96, 0x40, 0xb2, + 0x42, 0x64, 0xb1, 0xe5, 0x24, 0xfc, 0xb1, }, + { 0x5c, 0x6e, 0x8e, 0xcf, 0x1f, 0x7d, 0x30, 0x23, 0x89, 0x3b, 0x7b, 0x1c, 0xa1, 0xe4, 0xd1, 0x78,0x97, 0x2e, 0xe2, 0xa2, 0x30, 0x75, 0x7d, 0xdc, 0x56, + 0x4f, 0xfe, 0x37, 0xf5, 0xc5, 0xa3, 0x21, }, + { 0x33, 0x4a, 0xe0, 0xc4, 0x69, 0x3d, 0x23, 0x93, 0x5a, 0x7e, 0x8e, 0x04, 0x3e, 0xbb, 0xde, 0x21,0xe1, 0x68, 0xa7, 0xcb, 0xa3, 0xfa, 0x50, 0x7c, 0x9b, + 0xe4, 0x1d, 0x76, 0x81, 0xe0, 0x49, 0xce, }, + { 0x2a, 0xda, 0xe4, 0xa1, 0x38, 0xa2, 0x39, 0xdc, 0xd9, 0x3c, 0x24, 0x3a, 0x38, 0x03, 0xc3, 0xe4,0xcf, 0x96, 0xe3, 0x7f, 0xe1, 0x4e, 0x6a, 0x9b, 0x71, + 0x7b, 0xe9, 0x59, 0x99, 0x59, 0xb1, 0x1c, }, }, { - { 0xa1, 0x9e, 0xf7, 0xbf, 0xf9, 0x8a, 0xda, 0x78, 0x18, 0x42, 0xfb, 0xfc, 0x51, 0xa4, 0x7a, 0xff,0x39, 0xb5, 0x93, 0x5a, 0x1c, 0x7d, 0x96, 0x25, 0xc8, 0xd3, 0x23, 0xd5, 0x11, 0xc9, 0x2d, 0xe6, }, - { 0xe9, 0xc1, 0x84, 0xdf, 0x75, 0xc9, 0x55, 0xe0, 0x2e, 0x02, 0xe4, 0x00, 0xff, 0xe4, 0x5f, 0x78,0xf3, 0x39, 0xe1, 0xaf, 0xe6, 0xd0, 0x56, 0xfb, 0x32, 0x45, 0xf4, 0x70, 0x0c, 0xe6, 0x06, 0xef, }, - { 0x2c, 0x4b, 0xde, 0x40, 0x21, 0x4f, 0xcc, 0x3b, 0xfc, 0x47, 0xd4, 0xcf, 0x43, 0x4b, 0x62, 0x9a,0xcb, 0xe9, 0x15, 0x7f, 0x8f, 0xd0, 0x28, 0x25, 0x40, 0x33, 0x1d, 0xe7, 0x94, 0x2c, 0xf0, 0x9d, }, - { 0x2e, 0x27, 0x7e, 0xc3, 0x0f, 0x5e, 0xa0, 0x7d, 0x6c, 0xe5, 0x13, 0x14, 0x9b, 0x94, 0x79, 0xb9,0x6e, 0x07, 0xf4, 0xb6, 0x91, 0x3b, 0x1b, 0x5c, 0x11, 0x30, 0x5c, 0x14, 0x44, 0xa1, 0xbc, 0x0b, }, + { 0xa1, 0x9e, 0xf7, 0xbf, 0xf9, 0x8a, 0xda, 0x78, 0x18, 0x42, 0xfb, 0xfc, 0x51, 0xa4, 0x7a, 0xff,0x39, 0xb5, 0x93, 0x5a, 0x1c, 0x7d, 0x96, 0x25, 0xc8, + 0xd3, 0x23, 0xd5, 0x11, 0xc9, 0x2d, 0xe6, }, + { 0xe9, 0xc1, 0x84, 0xdf, 0x75, 0xc9, 0x55, 0xe0, 0x2e, 0x02, 0xe4, 0x00, 0xff, 0xe4, 0x5f, 0x78,0xf3, 0x39, 0xe1, 0xaf, 0xe6, 0xd0, 0x56, 0xfb, 0x32, + 0x45, 0xf4, 0x70, 0x0c, 0xe6, 0x06, 0xef, }, + { 0x2c, 0x4b, 0xde, 0x40, 0x21, 0x4f, 0xcc, 0x3b, 0xfc, 0x47, 0xd4, 0xcf, 0x43, 0x4b, 0x62, 0x9a,0xcb, 0xe9, 0x15, 0x7f, 0x8f, 0xd0, 0x28, 0x25, 0x40, + 0x33, 0x1d, 0xe7, 0x94, 0x2c, 0xf0, 0x9d, }, + { 0x2e, 0x27, 0x7e, 0xc3, 0x0f, 0x5e, 0xa0, 0x7d, 0x6c, 0xe5, 0x13, 0x14, 0x9b, 0x94, 0x79, 0xb9,0x6e, 0x07, 0xf4, 0xb6, 0x91, 0x3b, 0x1b, 0x5c, 0x11, + 0x30, 0x5c, 0x14, 0x44, 0xa1, 0xbc, 0x0b, }, }, { - { 0x35, 0x6c, 0x5a, 0x44, 0x4c, 0x04, 0x9a, 0x52, 0xfe, 0xe0, 0xad, 0xeb, 0x7e, 0x5d, 0x82, 0xae,0x5a, 0xa8, 0x30, 0x30, 0xbf, 0xff, 0x31, 0xbb, 0xf8, 0xce, 0x20, 0x96, 0xcf, 0x16, 0x1c, 0x4b, }, - { 0x57, 0xd1, 0x28, 0xde, 0x8b, 0x2a, 0x57, 0xa0, 0x94, 0xd1, 0xa0, 0x01, 0xe5, 0x72, 0x17, 0x3f,0x96, 0xe8, 0x86, 0x6a, 0xe3, 0x52, 0xbf, 0x29, 0xcd, 0xda, 0xf9, 0x2f, 0xc8, 0x5b, 0x2f, 0x92, }, - { 0x85, 0xa2, 0x68, 0xf9, 0xd7, 0x77, 0x2f, 0x99, 0x0c, 0x36, 0xb4, 0x2b, 0x0a, 0x33, 0x1a, 0xdc,0x92, 0xb5, 0x94, 0x1d, 0xe0, 0xb8, 0x62, 0xd5, 0xd8, 0x9a, 0x34, 0x7c, 0xbf, 0x8f, 0xaa, 0xb0, }, - { 0x1e, 0x51, 0x37, 0x3b, 0xd2, 0xc6, 0x04, 0x4c, 0x12, 0x9c, 0x43, 0x6e, 0x74, 0x2a, 0x55, 0xbe,0x2a, 0x66, 0x8a, 0x85, 0xae, 0x08, 0x44, 0x1b, 0x67, 0x56, 0x44, 0x5d, 0xf5, 0x49, 0x38, 0x57, }, + { 0x35, 0x6c, 0x5a, 0x44, 0x4c, 0x04, 0x9a, 0x52, 0xfe, 0xe0, 0xad, 0xeb, 0x7e, 0x5d, 0x82, 0xae,0x5a, 0xa8, 0x30, 0x30, 0xbf, 0xff, 0x31, 0xbb, 0xf8, + 0xce, 0x20, 0x96, 0xcf, 0x16, 0x1c, 0x4b, }, + { 0x57, 0xd1, 0x28, 0xde, 0x8b, 0x2a, 0x57, 0xa0, 0x94, 0xd1, 0xa0, 0x01, 0xe5, 0x72, 0x17, 0x3f,0x96, 0xe8, 0x86, 0x6a, 0xe3, 0x52, 0xbf, 0x29, 0xcd, + 0xda, 0xf9, 0x2f, 0xc8, 0x5b, 0x2f, 0x92, }, + { 0x85, 0xa2, 0x68, 0xf9, 0xd7, 0x77, 0x2f, 0x99, 0x0c, 0x36, 0xb4, 0x2b, 0x0a, 0x33, 0x1a, 0xdc,0x92, 0xb5, 0x94, 0x1d, 0xe0, 0xb8, 0x62, 0xd5, 0xd8, + 0x9a, 0x34, 0x7c, 0xbf, 0x8f, 0xaa, 0xb0, }, + { 0x1e, 0x51, 0x37, 0x3b, 0xd2, 0xc6, 0x04, 0x4c, 0x12, 0x9c, 0x43, 0x6e, 0x74, 0x2a, 0x55, 0xbe,0x2a, 0x66, 0x8a, 0x85, 0xae, 0x08, 0x44, 0x1b, 0x67, + 0x56, 0x44, 0x5d, 0xf5, 0x49, 0x38, 0x57, }, } }; diff --git a/test/vectors/ecdsa_nist_vectors.c b/test/vectors/ecdsa_nist_vectors.c index 9a11ff581..8da460c91 100644 --- a/test/vectors/ecdsa_nist_vectors.c +++ b/test/vectors/ecdsa_nist_vectors.c @@ -28,6 +28,150 @@ #include "cryptoauthlib.h" #include "ecdsa_nist_vectors.h" +// *INDENT-OFF* +#if TEST_VECTOR_EC_P224_EN +const ecdsa_p224_test_vector ecdsa_p224_test_vectors[] = { + { + { 0x2b, 0xa, 0xe1, 0xa7, 0x3f, 0x71, 0x69, 0xff, 0x23, 0xd1, 0xb8, 0xc4, 0x80, 0x44, 0x84, 0x43, 0x4f, 0x6, 0xca, 0x2d, 0x6b, 0x9e, 0x65, 0x63, 0xb, 0xd8, 0xc6, 0x69, 0x2b, 0x85, 0xbc, 0xf4, 0x55, 0x6b, 0x88, 0xb, 0xb5, 0x74, 0xab, 0x4f, 0x53, 0x84, 0x10, 0xe9, 0xa5, 0x35, 0xb2, 0x5, 0x48, 0x96, 0xee, 0x81, 0x7b, 0x8c, 0x84, 0x12, 0xe8, 0x2c, 0xb7, 0x85, 0x44, 0x4a, 0xd0, 0x42, 0x72, 0x5d, 0x1, 0xb9, 0xce, 0x7d, 0xec, 0x1a, 0x82, 0x1d, 0x9b, 0xf1, 0x2d, 0x60, 0x53, 0x8a, 0xc9, 0x3a, 0x1b, 0x6e, 0x12, 0x51, 0xb3, 0x7e, 0x62, 0xec, 0xc1, 0x5c, 0x92, 0xb7, 0x82, 0x3c, 0xf0, 0x8f, 0xc, 0xa5, 0x66, 0x5f, 0xcd, 0x84, 0xcb, 0x2c, 0x26, 0x50, 0x9c, 0xfe, 0xc9, 0x71, 0x3, 0xaf, 0x2, 0xf5, 0xa3, 0x4a, 0x5e, 0xbe, 0x7a, 0xb4, 0x32, 0x97, 0xaf, 0x3c, 0xa2, 0x73}, + { 0x88, 0x56, 0xfb, 0x8b, 0x81, 0xa4, 0xea, 0xcd, 0x97, 0x1a, 0x95, 0x45, 0x60, 0x1, 0x8f, 0x33, 0xcb, 0xb7, 0x1c, 0xc1, 0xfc, 0x24, 0x3d, 0x3, 0xf6, 0x3c, 0xab, 0xcb}, + { 0x28, 0xaf, 0xa2, 0x6b, 0xaf, 0x31, 0xb4, 0xd8, 0x9d, 0xe1, 0xda, 0xdd, 0x22, 0x89, 0x0, 0x6f, 0x83, 0x6f, 0x23, 0xa1, 0x13, 0x83, 0x81, 0x7e, 0xc7, 0xe4, 0xe7, 0x99}, + { 0xef, 0xcc, 0xef, 0x33, 0x18, 0x5, 0xe7, 0x1b, 0xbf, 0x87, 0x6c, 0xbb, 0xc2, 0x34, 0x2a, 0x6b, 0xc4, 0x50, 0x8a, 0xea, 0x7c, 0x69, 0x10, 0x29, 0xc8, 0x39, 0x6a, 0xef}, + { 0xbe, 0xd5, 0x44, 0xd0, 0x9e, 0x28, 0xdb, 0xf0, 0x1a, 0x30, 0xb2, 0xcf, 0xb6, 0x1b, 0x98, 0xad, 0x62, 0x1, 0xa9, 0x81, 0x8f, 0x22, 0xb4, 0xf5, 0x43, 0xf3, 0xe7, 0xf5}, + false, + "4 - Q changed" + }, + { + { 0xc8, 0xb1, 0xd, 0x4e, 0x5a, 0x1f, 0x5f, 0x6a, 0x3c, 0xf, 0x4c, 0x15, 0xdc, 0x2d, 0xc8, 0x4f, 0xf, 0x36, 0xb2, 0x19, 0x7, 0x6e, 0x27, 0xba, 0xe6, 0xd2, 0x6e, 0x3b, 0x4a, 0x41, 0x44, 0x73, 0x18, 0x64, 0x72, 0xec, 0x79, 0x35, 0x27, 0xbb, 0x87, 0x4, 0xf6, 0x92, 0x85, 0xb9, 0x6e, 0xaf, 0x94, 0x73, 0x8, 0x50, 0x60, 0x60, 0x35, 0x84, 0xbc, 0xa5, 0xf1, 0xfc, 0xe4, 0xe9, 0x9, 0x20, 0x3d, 0xcf, 0xe, 0xb5, 0xc, 0xf0, 0x5a, 0xda, 0xf8, 0x98, 0x4, 0xc4, 0x20, 0xe9, 0x1d, 0x12, 0x26, 0xd9, 0x44, 0x9b, 0xeb, 0xf2, 0xe9, 0xb3, 0xea, 0x7c, 0xb2, 0x3b, 0xd0, 0x94, 0xa0, 0xbb, 0x4, 0xb5, 0x79, 0x78, 0x9c, 0x80, 0xf, 0x58, 0x83, 0x14, 0x89, 0xd2, 0x51, 0x79, 0xdb, 0x1, 0x5d, 0x75, 0x1e, 0x47, 0xc, 0xb, 0x21, 0xc7, 0xae, 0x3, 0xfc, 0xe, 0x4a, 0x94, 0x99, 0x70}, + { 0x34, 0xc5, 0xff, 0x3d, 0xe5, 0x65, 0xb8, 0x5b, 0xfd, 0xd9, 0xf0, 0xa8, 0xb3, 0xfb, 0xd, 0x46, 0xf9, 0x24, 0xc5, 0x7b, 0x27, 0x6b, 0xcc, 0x83, 0xa, 0x1e, 0xd5, 0x80}, + { 0x60, 0x9d, 0x22, 0x20, 0xe, 0xf3, 0x8b, 0x41, 0xd, 0xa7, 0x7f, 0x7a, 0x8f, 0xf2, 0xf5, 0x84, 0x48, 0x18, 0x80, 0x42, 0x97, 0x8f, 0xd9, 0xae, 0x1b, 0x2b, 0x44, 0x77}, + { 0xf0, 0x13, 0x80, 0x24, 0xfe, 0x5, 0x16, 0x73, 0x8f, 0x3b, 0xd0, 0xe0, 0xfe, 0xc1, 0xd, 0xef, 0xac, 0xa8, 0xc3, 0xb8, 0x9c, 0x16, 0x1a, 0x77, 0x48, 0x9c, 0xf2, 0xb7}, + { 0x4a, 0xe0, 0x93, 0x42, 0x66, 0xd9, 0xe3, 0xd6, 0x4c, 0x2a, 0x12, 0xf5, 0x46, 0xb1, 0x32, 0xba, 0xf, 0x33, 0xef, 0x50, 0xab, 0xc9, 0xe, 0x7e, 0xf5, 0x97, 0x48, 0x5}, + true, + "P" + }, + { + { 0x53, 0xc, 0xb8, 0x8a, 0x92, 0x4, 0xaa, 0x1e, 0xb1, 0x1a, 0x10, 0xe, 0xdf, 0x18, 0x49, 0xd3, 0xcd, 0xe9, 0x4f, 0x52, 0xd0, 0x3b, 0x57, 0x27, 0xcb, 0x6c, 0xf2, 0xe5, 0x66, 0x47, 0xe6, 0x1a, 0xe9, 0x33, 0x13, 0x1f, 0xc7, 0x1, 0x7d, 0x4d, 0x11, 0x76, 0xc5, 0xfd, 0x63, 0x7d, 0x40, 0xb9, 0x3e, 0x4, 0x54, 0xe, 0xbc, 0xc2, 0x4c, 0x42, 0x91, 0x15, 0x24, 0x6d, 0x51, 0xb4, 0x12, 0x99, 0x34, 0x44, 0x80, 0xc, 0xa5, 0x44, 0x3b, 0xbf, 0xde, 0x39, 0x13, 0x4e, 0x97, 0xc1, 0x6, 0xc4, 0x8a, 0x4f, 0x33, 0x16, 0xf5, 0xf4, 0xd9, 0xa6, 0xeb, 0xe1, 0x34, 0xa1, 0xe, 0xef, 0x14, 0xad, 0xe3, 0x97, 0x1d, 0x7c, 0x37, 0xe9, 0x33, 0x1a, 0x91, 0xa3, 0x94, 0x35, 0x5c, 0x95, 0x21, 0xc4, 0x15, 0xd0, 0x3c, 0x55, 0xe, 0x28, 0x58, 0x3a, 0xc9, 0x5c, 0x6, 0xfc, 0x22, 0x2c, 0x9, 0x4f}, + { 0x46, 0x5a, 0xfb, 0x14, 0xf4, 0xbf, 0x85, 0x2, 0x2a, 0xc1, 0xf6, 0x35, 0xf4, 0x6c, 0xb, 0x2f, 0x65, 0x48, 0xba, 0xce, 0x93, 0x52, 0xd3, 0x2f, 0x74, 0xea, 0xb0, 0x12}, + { 0x3, 0x63, 0x71, 0xa3, 0x24, 0x6d, 0xbf, 0x10, 0x69, 0xd2, 0xd2, 0x68, 0xca, 0x43, 0x15, 0x53, 0xd1, 0xf2, 0xbf, 0x1, 0x81, 0x22, 0x51, 0x45, 0x88, 0x1b, 0x7b, 0xe0}, + { 0x9b, 0xcd, 0x57, 0xa2, 0xfe, 0xc2, 0x51, 0x89, 0x3, 0xe4, 0xb1, 0x3d, 0xc0, 0xa7, 0xb8, 0x4b, 0xaf, 0xed, 0x5c, 0x49, 0x8, 0x54, 0x6e, 0x94, 0xff, 0xae, 0x87, 0xed}, + { 0xa3, 0x37, 0xe0, 0x65, 0x82, 0xf6, 0xb3, 0x97, 0x3d, 0xf3, 0x8b, 0x93, 0xa0, 0xfb, 0x2a, 0x63, 0xf7, 0x77, 0x4b, 0x62, 0xdb, 0x50, 0xdb, 0xa5, 0x57, 0xe5, 0xcf, 0xcc}, + false, + "3 - S changed" + }, + { + { 0x28, 0xcc, 0x72, 0xda, 0xf7, 0xb4, 0xec, 0xd0, 0xf2, 0x15, 0x60, 0x35, 0x57, 0x61, 0x13, 0x27, 0x9c, 0x8f, 0x80, 0xf0, 0x7e, 0x9e, 0xd6, 0x57, 0x86, 0xd2, 0xbb, 0xa8, 0x96, 0xe4, 0xb5, 0xf6, 0x7a, 0x8, 0xa8, 0xbe, 0xef, 0x91, 0x50, 0xc9, 0xfc, 0xb9, 0x7f, 0x21, 0xb2, 0x5f, 0x69, 0x2a, 0x19, 0xf8, 0xf6, 0x8a, 0x2e, 0xe8, 0xa2, 0x44, 0x61, 0x81, 0x39, 0x4f, 0x3f, 0xa, 0xcc, 0x5f, 0x36, 0x98, 0xa9, 0xa8, 0x93, 0x84, 0xe7, 0xb0, 0x5d, 0xfd, 0x6b, 0x7f, 0x8e, 0xac, 0x21, 0x44, 0x47, 0xa4, 0xa6, 0xba, 0x8f, 0xb2, 0x77, 0x56, 0xd7, 0xb, 0x34, 0xea, 0x2d, 0xc, 0xbe, 0xe9, 0xae, 0xfd, 0x92, 0x79, 0x82, 0x4b, 0xb3, 0x3d, 0xc1, 0x58, 0x94, 0xfe, 0xa2, 0x9e, 0x5c, 0x84, 0xb3, 0x28, 0x1a, 0xdd, 0xea, 0x1, 0x3d, 0x22, 0x1b, 0xf8, 0xe5, 0xcd, 0xa1, 0x83, 0x3a, 0x24}, + { 0xb8, 0xb7, 0xf9, 0x23, 0xc0, 0x5e, 0xc9, 0x5e, 0xbd, 0x48, 0x4d, 0xb7, 0xc5, 0x8d, 0x21, 0x9c, 0xfd, 0x26, 0xee, 0x6b, 0x66, 0x14, 0x96, 0x31, 0xf2, 0x5f, 0xfe, 0x4c}, + { 0x6b, 0xda, 0x5f, 0x4f, 0x98, 0x87, 0x84, 0x55, 0x5a, 0x80, 0xb5, 0x49, 0x4e, 0xca, 0x51, 0xad, 0x2c, 0x7f, 0x88, 0xce, 0x94, 0xd2, 0x9, 0xe, 0xe0, 0xc7, 0x6f, 0xba}, + { 0xce, 0x4d, 0x86, 0xbf, 0x5a, 0x75, 0x43, 0xd1, 0xcb, 0xa8, 0xe4, 0x47, 0xa, 0x29, 0x7e, 0x9a, 0x48, 0xd0, 0x9, 0x6d, 0x77, 0x88, 0xc6, 0x28, 0x4b, 0x1c, 0xa, 0xf3}, + { 0x22, 0x9e, 0xb0, 0x63, 0x6e, 0xe6, 0x25, 0x8, 0xce, 0x37, 0x19, 0x39, 0x6d, 0x75, 0x77, 0xed, 0x89, 0x2c, 0xec, 0x70, 0xa6, 0x68, 0x57, 0xfd, 0xee, 0xd, 0x1f, 0xa0}, + false, + "4 - Q changed" + }, + { + { 0x12, 0x50, 0x92, 0x71, 0x8c, 0x72, 0x61, 0x44, 0x52, 0xa7, 0xa3, 0x64, 0x25, 0xb7, 0x59, 0x24, 0x3d, 0x6d, 0x99, 0x95, 0x77, 0x6b, 0xd2, 0xd8, 0x5c, 0x7e, 0xb1, 0xd5, 0xf5, 0x3f, 0x92, 0x93, 0xbd, 0x1d, 0x75, 0x83, 0x31, 0xdd, 0x5f, 0xea, 0xcd, 0x57, 0x69, 0xa6, 0x66, 0xe3, 0xb2, 0x84, 0x32, 0x66, 0x10, 0x50, 0xc, 0x75, 0x34, 0x5f, 0x20, 0x32, 0x76, 0x89, 0xe2, 0x1a, 0x37, 0x72, 0x1d, 0x31, 0xc6, 0xc9, 0x81, 0x37, 0x2a, 0xd3, 0xf3, 0xce, 0x81, 0x6b, 0x9a, 0xe5, 0x8f, 0x3a, 0xe9, 0xac, 0xdc, 0x47, 0xa8, 0xab, 0xd5, 0x58, 0xb6, 0x79, 0xb, 0xf7, 0x5d, 0x38, 0xb1, 0xdb, 0x2c, 0x20, 0xd3, 0x37, 0x8c, 0x15, 0xef, 0x98, 0xdd, 0xa, 0xf3, 0x59, 0x27, 0xbf, 0xc0, 0x0, 0xa3, 0x8a, 0xc9, 0x1, 0xea, 0x1b, 0x77, 0x86, 0x82, 0x22, 0xd5, 0xd8, 0xde, 0x18, 0x71, 0xbd}, + { 0x13, 0xe8, 0x4e, 0xc2, 0xeb, 0x99, 0x38, 0x18, 0xd7, 0xd7, 0x83, 0x30, 0x85, 0x5e, 0xe2, 0xfb, 0xe8, 0xdd, 0xb5, 0x48, 0xa5, 0xe4, 0x19, 0x8e, 0x20, 0x87, 0xb3, 0xb2}, + { 0xc9, 0x5d, 0xff, 0x24, 0x9e, 0x10, 0xc5, 0x6, 0xfb, 0x54, 0x7a, 0x92, 0xad, 0xe5, 0x3c, 0x61, 0xdd, 0xbb, 0x66, 0x7c, 0x76, 0xe, 0x41, 0x27, 0xa1, 0xa7, 0xf8, 0x6}, + { 0xed, 0x26, 0xf0, 0xe, 0xd6, 0x96, 0xe1, 0x14, 0x30, 0x5c, 0x54, 0x6e, 0xd0, 0x4d, 0xb5, 0xfc, 0x35, 0xef, 0xa4, 0x30, 0x59, 0xc0, 0xd8, 0xbb, 0xcd, 0x41, 0x8d, 0xc}, + { 0x6e, 0x16, 0xef, 0xbe, 0x95, 0x1, 0xe3, 0x5, 0x5d, 0x74, 0x96, 0x6a, 0x49, 0x23, 0x2c, 0xd7, 0x6b, 0x5d, 0x12, 0x41, 0x46, 0x87, 0x88, 0xb4, 0xcc, 0x73, 0x78, 0xb4}, + false, + "2 - R changed" + }, + { + { 0xf8, 0x83, 0xa9, 0x57, 0xc5, 0xa3, 0x61, 0x66, 0x45, 0x78, 0x68, 0x44, 0xde, 0x4b, 0xb, 0xef, 0xef, 0x1c, 0x8, 0x53, 0x9a, 0x5c, 0xf5, 0x2d, 0xe2, 0xe5, 0x9, 0x34, 0xc5, 0xb0, 0x1c, 0xc, 0x2c, 0x5b, 0x2f, 0xf9, 0xfb, 0xcf, 0x4e, 0x8c, 0x3e, 0xc5, 0xd, 0xab, 0x9a, 0xfd, 0x3c, 0xb6, 0xea, 0xbe, 0x23, 0x1d, 0xd0, 0xaf, 0x3a, 0xe0, 0x75, 0x4c, 0xd7, 0x97, 0x6e, 0x9c, 0x8f, 0xf7, 0xd9, 0xcb, 0x33, 0x37, 0xad, 0x53, 0x5e, 0x50, 0xe5, 0xf, 0xf7, 0x92, 0xd4, 0xd5, 0xa, 0x45, 0x5d, 0x6b, 0xa8, 0x57, 0xba, 0x85, 0x4, 0x25, 0x66, 0x26, 0xb5, 0xf2, 0x81, 0x9, 0xfc, 0x57, 0xaf, 0x53, 0x31, 0xb0, 0x43, 0xe1, 0x2c, 0xf8, 0x99, 0x2a, 0x73, 0xd7, 0xf8, 0xa1, 0xf7, 0x1e, 0xb9, 0xe7, 0xc5, 0x42, 0xf8, 0x62, 0x2c, 0x86, 0x29, 0xb9, 0xb1, 0x8f, 0x7, 0xad, 0xfa, 0xc1}, + { 0x16, 0xc2, 0x3c, 0x93, 0x69, 0x9c, 0xf6, 0x65, 0xa5, 0xda, 0x8b, 0x2d, 0x4b, 0xaa, 0x72, 0xc3, 0x61, 0x58, 0xd3, 0x43, 0x3b, 0x1b, 0x94, 0x5e, 0x47, 0x20, 0x4b, 0xd}, + { 0x12, 0x2, 0x37, 0x3, 0xe1, 0xb5, 0x9e, 0xc9, 0x5, 0x4f, 0xf2, 0x2d, 0x15, 0x56, 0x7b, 0x9f, 0x74, 0x5, 0x8b, 0x47, 0xcc, 0x13, 0xf2, 0xca, 0x8, 0xab, 0x77, 0xc1}, + { 0xad, 0xa8, 0x49, 0xb6, 0x73, 0xa1, 0xbd, 0x29, 0x49, 0xa8, 0xb4, 0xd8, 0xfd, 0xfc, 0x23, 0x9e, 0xc5, 0x35, 0x24, 0xa3, 0x56, 0xd3, 0x7d, 0xa3, 0xc9, 0xd1, 0x7a, 0xe2}, + { 0x69, 0x8d, 0xe3, 0xa3, 0xd8, 0x69, 0x7c, 0x2e, 0x8e, 0x5b, 0x2c, 0x85, 0xfc, 0xeb, 0x87, 0x96, 0x75, 0xc, 0x5b, 0x44, 0x15, 0x4f, 0x1, 0xce, 0x86, 0xd9, 0x9e, 0x24}, + false, + "1 - Message changed" + }, + { + { 0x23, 0x46, 0xf5, 0x31, 0x39, 0x9e, 0xc2, 0xa8, 0x9, 0x64, 0x5e, 0xd8, 0x5e, 0xf7, 0x2, 0x6f, 0x93, 0x87, 0xaf, 0xe2, 0xdc, 0x3d, 0xaa, 0x89, 0xac, 0xe4, 0x95, 0x40, 0x61, 0xdf, 0xa0, 0x71, 0xd8, 0xe8, 0x6, 0x76, 0xbd, 0x3a, 0x83, 0xaf, 0x54, 0x92, 0xc, 0x35, 0x46, 0xed, 0xb9, 0x1f, 0x72, 0xd0, 0x29, 0x2b, 0xc, 0x78, 0x20, 0x62, 0xaf, 0x5c, 0x52, 0xae, 0x81, 0xd1, 0x4b, 0xab, 0xe9, 0xbf, 0xeb, 0x26, 0xde, 0x72, 0x3b, 0xce, 0x79, 0x48, 0x84, 0x95, 0x32, 0x1a, 0xc0, 0xac, 0xe, 0x0, 0xf1, 0x21, 0x38, 0x4e, 0xdf, 0xcf, 0x4e, 0x64, 0x82, 0xb8, 0x66, 0xbd, 0x78, 0x44, 0x25, 0xae, 0xe5, 0x11, 0x2a, 0x3d, 0x77, 0x50, 0xb8, 0x7e, 0x13, 0x2b, 0x2e, 0x89, 0x5c, 0x74, 0xae, 0xe1, 0x82, 0xf8, 0x2b, 0x73, 0xa3, 0x6c, 0x5d, 0xe5, 0xce, 0x2c, 0x94, 0x6, 0x41, 0x46}, + { 0xa5, 0x80, 0xf9, 0xa0, 0xcd, 0x15, 0xab, 0xff, 0x8e, 0x1e, 0x71, 0x2f, 0x16, 0xb0, 0xfd, 0x41, 0x42, 0xd0, 0xd7, 0x73, 0xaf, 0x3c, 0x65, 0x7a, 0xbc, 0x6, 0xc2, 0xa6}, + { 0x22, 0xc6, 0x28, 0x63, 0x40, 0xdc, 0x7, 0x2e, 0x64, 0x27, 0x42, 0x9, 0xed, 0xa6, 0x5, 0x3, 0x4, 0x77, 0x0, 0x57, 0x1c, 0xae, 0xe6, 0x4b, 0x4a, 0x23, 0x6, 0xc2}, + { 0xc6, 0xfa, 0xe0, 0x62, 0x74, 0xdc, 0x5, 0x2e, 0x48, 0x21, 0x2, 0x52, 0xb, 0x49, 0xd4, 0xcc, 0xc4, 0xcb, 0x7e, 0xb8, 0xa3, 0xea, 0x41, 0xbd, 0x36, 0x80, 0xdd, 0xad}, + { 0x50, 0xd6, 0x6b, 0x75, 0xa2, 0xbb, 0xd0, 0x46, 0x8b, 0xe1, 0xf9, 0xe6, 0x1b, 0xfd, 0xa8, 0x5b, 0x63, 0x29, 0x50, 0x5b, 0x1, 0x34, 0xd6, 0x8, 0x46, 0xcb, 0xe4, 0xb7}, + true, + "P" + }, + { + { 0x9, 0x21, 0x24, 0xdb, 0xfb, 0x91, 0x6f, 0xb5, 0x29, 0x16, 0x6b, 0x7b, 0xf3, 0x2a, 0x5b, 0xb8, 0xf6, 0x1, 0x38, 0xf0, 0xef, 0x3, 0xe7, 0xea, 0xe7, 0xd9, 0x88, 0x19, 0xb0, 0xf8, 0x24, 0xe1, 0x75, 0x64, 0xc4, 0xe9, 0xe4, 0x4c, 0x58, 0xe7, 0xe3, 0x6f, 0x58, 0x73, 0x8e, 0xa5, 0x29, 0x67, 0x21, 0x5, 0x4c, 0x52, 0xfd, 0xe1, 0xbb, 0x57, 0x5a, 0xc4, 0x8c, 0x38, 0xde, 0xca, 0x47, 0xfd, 0x67, 0x17, 0x62, 0x8f, 0xef, 0x8a, 0xf5, 0x7e, 0x0, 0x5e, 0xa1, 0x9b, 0x6c, 0xe2, 0xf3, 0x10, 0xd, 0x26, 0x80, 0xb9, 0x4b, 0xf5, 0x3d, 0xd0, 0xe8, 0x53, 0xec, 0x62, 0xa7, 0xcc, 0x13, 0xde, 0x51, 0xd9, 0xb3, 0x79, 0x85, 0x8a, 0xd0, 0xab, 0x4a, 0xf9, 0x64, 0x2c, 0x3d, 0x59, 0xe7, 0x22, 0xf8, 0x85, 0x3, 0xa0, 0x29, 0x64, 0x57, 0xe, 0x7, 0x69, 0xd6, 0xa0, 0x54, 0x37, 0xa, 0x7a}, + { 0xb, 0x4f, 0xb6, 0xfe, 0x5f, 0x6c, 0xf6, 0xad, 0xc7, 0xd2, 0x86, 0x83, 0x62, 0x8d, 0x4b, 0x9c, 0x56, 0x9d, 0x21, 0xd2, 0x39, 0x75, 0x33, 0xf5, 0xbd, 0x12, 0x1a, 0x23}, + { 0xb4, 0x4d, 0x60, 0xa3, 0x41, 0x4b, 0x9b, 0x7b, 0x6e, 0x4a, 0xd7, 0x35, 0xce, 0x2f, 0x9c, 0xb0, 0x55, 0x93, 0xb0, 0x87, 0x4a, 0xda, 0x5e, 0x65, 0xac, 0xde, 0xad, 0x4c}, + { 0xab, 0x5a, 0xc2, 0x3, 0x9b, 0x49, 0x69, 0xc, 0x64, 0x36, 0x79, 0x3d, 0xec, 0xb1, 0xa6, 0xa5, 0x8a, 0xc3, 0x48, 0x33, 0xa8, 0x9, 0x10, 0x5, 0x31, 0x2a, 0x93, 0xa7}, + { 0x98, 0xfe, 0x95, 0x5c, 0xd8, 0x36, 0x50, 0x1c, 0xef, 0x78, 0xc7, 0xa0, 0x5f, 0xa2, 0x7e, 0xdf, 0x2f, 0xb3, 0xaf, 0xea, 0x80, 0x99, 0x0, 0x28, 0xff, 0x64, 0xe9, 0x84}, + false, + "1 - Message changed" + }, + { + { 0x59, 0xf7, 0x31, 0xd3, 0xe4, 0xf2, 0x76, 0x44, 0xc, 0xa3, 0x37, 0x6a, 0xd7, 0x1b, 0x23, 0xfd, 0x92, 0xb7, 0x1d, 0x80, 0x2a, 0x92, 0x25, 0x4e, 0xab, 0xaa, 0x5d, 0xa1, 0x96, 0xc9, 0xaa, 0xc6, 0xce, 0xe1, 0xf3, 0x96, 0xb7, 0x2f, 0x24, 0xff, 0x2c, 0x86, 0x12, 0x53, 0x4c, 0xeb, 0xc1, 0xb1, 0x54, 0x67, 0x3a, 0x59, 0x64, 0x10, 0x9d, 0x80, 0xb8, 0x84, 0x4e, 0x99, 0x97, 0x13, 0x70, 0xc4, 0x78, 0xbd, 0x7d, 0xb7, 0xf9, 0xf0, 0x6, 0x71, 0x5f, 0x62, 0x9, 0x36, 0x1d, 0xd7, 0xf3, 0x3c, 0xea, 0xd3, 0x6c, 0x74, 0x65, 0x28, 0x50, 0xbd, 0x1f, 0x5b, 0x8b, 0xbe, 0xa5, 0xe6, 0xce, 0xdf, 0x30, 0xc6, 0x3d, 0x38, 0xa8, 0x90, 0xe8, 0xd5, 0xc9, 0x85, 0x5, 0x78, 0x57, 0x37, 0x96, 0x90, 0xab, 0xfa, 0x67, 0x26, 0xe5, 0x88, 0xb6, 0x15, 0x6, 0xcf, 0xa7, 0x7f, 0x54, 0x10, 0x39, 0xc8}, + { 0xba, 0xe2, 0xb3, 0x63, 0x4c, 0x78, 0x54, 0xc9, 0x32, 0x55, 0x1e, 0xce, 0x8d, 0xce, 0xd2, 0x13, 0x9a, 0x51, 0x70, 0x50, 0x59, 0x50, 0x38, 0x81, 0xa9, 0x23, 0x9c, 0x78}, + { 0x9, 0x4d, 0x5e, 0x45, 0x5b, 0xc9, 0x29, 0x62, 0x2, 0x61, 0x8d, 0x70, 0x22, 0x51, 0x2b, 0xf, 0x9c, 0xe5, 0x3d, 0x79, 0x6c, 0x72, 0x94, 0xe6, 0xeb, 0x7, 0x6a, 0x29}, + { 0x2f, 0xbd, 0xc7, 0xe9, 0xe9, 0x8a, 0xed, 0x5d, 0xbb, 0xcc, 0x5b, 0x3, 0x4e, 0x17, 0xa9, 0x52, 0x9, 0xe2, 0xfe, 0x1b, 0x1, 0x51, 0x54, 0x26, 0xb8, 0xb3, 0x72, 0xc3}, + { 0xf2, 0xb1, 0x92, 0x26, 0x52, 0x8f, 0x10, 0xbe, 0x6e, 0xf0, 0xd2, 0x7e, 0xc3, 0x70, 0x3d, 0xb6, 0x90, 0x26, 0x12, 0x6, 0xb7, 0xe4, 0x2f, 0x93, 0xa6, 0x91, 0x19, 0x2e}, + false, + "2 - R changed" + }, + { + { 0x8c, 0x68, 0xa6, 0x96, 0x65, 0xf6, 0x40, 0xab, 0xed, 0x4c, 0x56, 0x65, 0x6a, 0x51, 0x27, 0xb7, 0x77, 0x8, 0xe4, 0x3d, 0x1c, 0xf9, 0x22, 0xd5, 0x2b, 0xdf, 0xb9, 0x4d, 0x71, 0xb6, 0xab, 0x3c, 0xbd, 0xa6, 0xc5, 0x21, 0x6f, 0x1a, 0x85, 0x59, 0xc7, 0x80, 0xd9, 0x31, 0x3e, 0xce, 0x7c, 0xd9, 0xcd, 0x25, 0x35, 0xf7, 0x34, 0x2b, 0x6f, 0x45, 0xc0, 0xf8, 0x4e, 0x55, 0xc6, 0x30, 0xe5, 0x91, 0x45, 0xf1, 0x7, 0x98, 0x17, 0xb8, 0x80, 0x6, 0x15, 0x92, 0xef, 0x64, 0x5b, 0x9e, 0xfb, 0x7c, 0x29, 0x48, 0x3a, 0x95, 0x48, 0xb5, 0xff, 0x74, 0xee, 0x91, 0x23, 0xe8, 0x72, 0x48, 0x42, 0x32, 0xc1, 0x6b, 0xdf, 0x6c, 0xd3, 0xc0, 0x74, 0xe8, 0xbc, 0x61, 0x7d, 0xab, 0x26, 0x62, 0x9b, 0x3e, 0xeb, 0x9b, 0xf8, 0xfe, 0xc2, 0x97, 0xc, 0xd4, 0x67, 0xca, 0xff, 0xc1, 0xc8, 0x9d, 0x2a, 0x3e}, + { 0x49, 0xd9, 0xff, 0x4f, 0x4b, 0xbd, 0x43, 0x20, 0xb6, 0x80, 0x6a, 0x7f, 0xba, 0xae, 0xdd, 0x96, 0x22, 0x83, 0xc7, 0x66, 0xa6, 0xc1, 0x30, 0xe4, 0xb6, 0x21, 0x39, 0xdc}, + { 0x6, 0xdb, 0xe8, 0xe7, 0xfb, 0x8f, 0xcc, 0xf9, 0x75, 0x81, 0x1, 0xae, 0x46, 0x93, 0x9c, 0x6f, 0xd4, 0xd3, 0xaf, 0xc5, 0x26, 0xba, 0x6c, 0x81, 0x56, 0xc6, 0xb0, 0x13}, + { 0x2d, 0x83, 0xaa, 0x59, 0xbc, 0xfc, 0x8a, 0x2, 0x37, 0x88, 0x48, 0x26, 0xe0, 0x8d, 0xbd, 0x78, 0xa5, 0x67, 0x33, 0x59, 0x8e, 0x37, 0x9f, 0x2a, 0x9d, 0x51, 0xe9, 0xe2}, + { 0x48, 0x50, 0x36, 0xc7, 0x46, 0x18, 0xd0, 0xe6, 0x65, 0x77, 0x5f, 0xbe, 0x2d, 0x61, 0x4a, 0x31, 0x3c, 0x55, 0xf, 0x98, 0x26, 0xb9, 0x55, 0xd3, 0xe5, 0x63, 0x6f, 0xd1}, + false, + "3 - S changed" + }, + { + { 0x57, 0xa2, 0xc4, 0xa1, 0x4a, 0x36, 0x33, 0xe0, 0x60, 0x77, 0x99, 0xe, 0x53, 0xe5, 0xf3, 0xaf, 0x5e, 0xc, 0x77, 0x79, 0x97, 0x4d, 0x2b, 0xc0, 0x70, 0x0, 0x1, 0xe5, 0xf4, 0x3b, 0x5d, 0x9f, 0xda, 0x16, 0x79, 0x73, 0xa3, 0x8e, 0xc2, 0x88, 0xbe, 0xc2, 0x6f, 0x8d, 0xe3, 0xf7, 0xa6, 0x1, 0xd1, 0xf6, 0x65, 0xf8, 0x54, 0x25, 0x60, 0x59, 0xa3, 0xea, 0x7, 0xe9, 0x21, 0x3a, 0xfa, 0x30, 0x39, 0x98, 0x7d, 0x85, 0x1, 0x97, 0x6b, 0x31, 0x47, 0x3b, 0x43, 0x4d, 0x44, 0x98, 0x50, 0x64, 0x2f, 0xa8, 0x9e, 0x99, 0x13, 0xcd, 0x1c, 0xa4, 0x45, 0xff, 0x3d, 0x3e, 0x98, 0x93, 0x60, 0x73, 0xda, 0x31, 0x52, 0x4d, 0x26, 0x5f, 0xe0, 0x41, 0x5a, 0x96, 0xa3, 0x9f, 0xa, 0xd9, 0x20, 0xef, 0x60, 0xde, 0xe, 0x83, 0xd1, 0x2a, 0x73, 0x55, 0x1d, 0x23, 0xb5, 0xe0, 0x47, 0x4a, 0xe3, 0x67}, + { 0x78, 0x45, 0x1c, 0xca, 0x49, 0x65, 0x59, 0x78, 0xb6, 0x5d, 0x8d, 0xdd, 0x45, 0xff, 0x36, 0x7c, 0x47, 0xf3, 0x21, 0xf5, 0xd5, 0x5d, 0xda, 0xc7, 0x96, 0x9a, 0xb8, 0x2b}, + { 0x25, 0xb7, 0x7f, 0x82, 0xa, 0xa9, 0xec, 0x93, 0xec, 0x89, 0xd7, 0xfc, 0x84, 0x28, 0x5f, 0x3f, 0x3d, 0xee, 0xd4, 0x96, 0xe0, 0xcd, 0x3f, 0xb9, 0xee, 0x4a, 0x5c, 0x99}, + { 0x99, 0x87, 0x89, 0x49, 0xe, 0x0, 0x8e, 0xd1, 0x1f, 0xeb, 0xdf, 0xe2, 0x98, 0x1a, 0x55, 0xc7, 0x33, 0xeb, 0x97, 0x39, 0xd7, 0xf3, 0x7f, 0xd5, 0xc2, 0xa7, 0xec, 0x96}, + { 0xc3, 0xec, 0x8a, 0xfa, 0xde, 0x81, 0x86, 0xf, 0xf2, 0x3c, 0xc1, 0xe7, 0xd7, 0x59, 0xd3, 0x2d, 0x9a, 0x57, 0x75, 0x88, 0x6e, 0xf1, 0x7b, 0xfb, 0x71, 0x9d, 0xf4, 0xaa}, + false, + "2 - R changed" + }, + { + { 0x2a, 0xef, 0xee, 0x3e, 0xed, 0xbe, 0xe0, 0x9e, 0xdc, 0xb8, 0xe1, 0x25, 0xe0, 0x47, 0xf0, 0x47, 0xb, 0xf5, 0xa, 0xc1, 0x40, 0xb3, 0x5e, 0x14, 0xb5, 0x10, 0x8b, 0x4b, 0x22, 0x79, 0x50, 0x61, 0x7d, 0x1, 0xce, 0x8c, 0x51, 0x77, 0xb3, 0xe0, 0xc6, 0x9, 0x7, 0xc6, 0x10, 0xa, 0x74, 0x98, 0x11, 0x42, 0x9, 0xe9, 0xc6, 0x5a, 0x73, 0x4b, 0xae, 0x32, 0x76, 0xa9, 0xa5, 0x2d, 0x9c, 0x30, 0xe8, 0x54, 0x46, 0xf0, 0x4b, 0xbb, 0x26, 0x36, 0xb3, 0xb9, 0x6d, 0x30, 0xa5, 0xa8, 0x45, 0x5b, 0xdc, 0x90, 0xfd, 0x9f, 0x90, 0xf1, 0xaf, 0xa8, 0xd9, 0x43, 0x51, 0x8e, 0x87, 0xcf, 0x8c, 0x37, 0x88, 0x28, 0xfd, 0x97, 0x2c, 0xb5, 0xb7, 0xcb, 0x67, 0x74, 0x6b, 0x5, 0xfd, 0x16, 0x48, 0xcc, 0xdd, 0x6b, 0xec, 0xe5, 0xb7, 0x54, 0x35, 0xc4, 0x64, 0x7e, 0xfa, 0xae, 0x93, 0x5d, 0x12, 0xdc}, + { 0x18, 0xce, 0xd6, 0xb, 0x7f, 0xd9, 0xeb, 0xf7, 0x6c, 0x3a, 0xa5, 0x97, 0x6d, 0xcb, 0xde, 0xf4, 0xb, 0xd3, 0xe3, 0x60, 0x33, 0xc0, 0x13, 0x55, 0x30, 0x43, 0xdd, 0x84}, + { 0x30, 0x39, 0x85, 0x82, 0xdb, 0xd2, 0x0, 0x40, 0x64, 0xf8, 0x5, 0x5e, 0x7f, 0xe0, 0xfe, 0x8d, 0xf1, 0x1b, 0x2c, 0x9d, 0x9e, 0x29, 0x31, 0xad, 0x12, 0xd0, 0x96, 0x28}, + { 0xf8, 0x80, 0x14, 0x39, 0x60, 0xe8, 0x12, 0x46, 0x48, 0x10, 0xc1, 0x75, 0x0, 0x1b, 0x5d, 0x39, 0x59, 0x2f, 0xe6, 0x3a, 0xab, 0x54, 0x4d, 0xeb, 0x9c, 0xa3, 0x1, 0xa0}, + { 0x1e, 0x6, 0x57, 0xdf, 0x7, 0x1a, 0x25, 0xdd, 0x79, 0x12, 0x64, 0xb4, 0x11, 0xc8, 0x96, 0x46, 0x88, 0xf4, 0xfe, 0x17, 0xce, 0x2, 0x4e, 0x65, 0x98, 0x36, 0xeb, 0xe1}, + false, + "4 - Q changed" + }, + { + { 0xd7, 0x97, 0x50, 0x68, 0xa, 0x4f, 0x68, 0x64, 0xcc, 0xeb, 0x1e, 0x92, 0xb, 0x42, 0x42, 0x47, 0x2, 0xce, 0xb5, 0xd, 0x3a, 0x5b, 0xba, 0x95, 0x89, 0xf3, 0x4f, 0x91, 0x65, 0x9b, 0x4b, 0x36, 0x6c, 0x4b, 0x33, 0x25, 0x87, 0x36, 0x3a, 0xc5, 0xd9, 0xe2, 0x74, 0x31, 0xc1, 0xc3, 0x79, 0xf6, 0xbd, 0x26, 0x73, 0x8e, 0xec, 0xf, 0x24, 0xb5, 0x67, 0xb6, 0x5a, 0x1, 0x47, 0xfc, 0xb6, 0x53, 0x4c, 0xce, 0xf, 0x6a, 0x30, 0xa5, 0xcc, 0xc2, 0x77, 0xa1, 0xa3, 0x4d, 0x4c, 0xd5, 0xd6, 0xd2, 0x3, 0x4f, 0xc2, 0x6a, 0x3d, 0x9c, 0x4e, 0x2f, 0xad, 0x5d, 0x38, 0x8c, 0xee, 0x9e, 0xf0, 0xf8, 0x95, 0xe8, 0xbc, 0xd5, 0x57, 0x24, 0x59, 0x6, 0x50, 0x79, 0xa5, 0xb6, 0xe9, 0x54, 0xa1, 0x9f, 0x62, 0x1d, 0xb3, 0x24, 0xb, 0xf6, 0xdd, 0x89, 0x36, 0x88, 0x87, 0xd6, 0x91, 0x24, 0x4a, 0xa5}, + { 0x5d, 0x67, 0xc1, 0xfc, 0xa8, 0x48, 0xba, 0x7f, 0x3d, 0x9d, 0xe5, 0xb1, 0x89, 0x4d, 0x39, 0x93, 0xac, 0x4e, 0xbe, 0x68, 0xcd, 0xb0, 0xb4, 0x95, 0x53, 0xb3, 0xb0, 0xe9}, + { 0x7, 0xc2, 0x19, 0xa8, 0x32, 0x32, 0x73, 0xc8, 0x1f, 0x56, 0x94, 0x30, 0x6d, 0xd, 0xd1, 0xd1, 0x33, 0xa4, 0x9e, 0xfc, 0xe5, 0x0, 0x3b, 0xc9, 0xf, 0x5, 0x57, 0x8f}, + { 0x76, 0x7c, 0xb6, 0xb2, 0xef, 0xa7, 0xa4, 0x7, 0x39, 0x83, 0x6, 0x59, 0xb0, 0xcc, 0x24, 0xfe, 0x3d, 0xe7, 0x71, 0xd0, 0x1, 0x4, 0xb3, 0xdc, 0xc0, 0xf6, 0x40, 0xbc}, + { 0xf2, 0xe7, 0x26, 0x8b, 0xc0, 0x11, 0xd7, 0x9d, 0x33, 0xf3, 0x55, 0x1d, 0x2e, 0xdd, 0x3c, 0x95, 0xf3, 0x24, 0x95, 0x54, 0x79, 0xb8, 0xe2, 0x9e, 0x8a, 0xba, 0x62, 0x9b}, + true, + "P" + }, + { + { 0xef, 0xfa, 0x30, 0x84, 0xfd, 0x48, 0x87, 0x51, 0x20, 0x50, 0xc2, 0x76, 0x44, 0x1c, 0x4a, 0x6d, 0x4c, 0xc2, 0x6e, 0x12, 0x13, 0x5f, 0x34, 0x5, 0x7d, 0x51, 0xe2, 0x31, 0x43, 0xd8, 0x46, 0x3a, 0xbd, 0x0, 0xe7, 0x96, 0x1f, 0xc1, 0x7b, 0xfe, 0xab, 0xc2, 0xe7, 0x59, 0xe8, 0x3, 0xf4, 0xd0, 0xaa, 0x8e, 0xf2, 0xd3, 0x90, 0xab, 0x70, 0x9e, 0x4c, 0x8, 0xd2, 0x15, 0x2, 0x8f, 0xf6, 0x55, 0x7a, 0x76, 0xe5, 0xa6, 0xf, 0x8c, 0x27, 0xd5, 0x87, 0x9c, 0x70, 0x4c, 0xb0, 0x5a, 0xae, 0x46, 0xb1, 0xbb, 0xfc, 0x4f, 0x40, 0x16, 0xab, 0xa8, 0xff, 0x56, 0x28, 0x40, 0xb5, 0x9b, 0x21, 0x83, 0xdc, 0x21, 0x87, 0x8c, 0xe2, 0x40, 0x2b, 0x98, 0xd3, 0x55, 0x64, 0xe4, 0xbe, 0xc8, 0x4f, 0x6f, 0xe6, 0x99, 0xfb, 0x5a, 0x39, 0x9f, 0x5c, 0xf3, 0x57, 0xa5, 0x98, 0xf, 0xc, 0x28, 0xf5, 0x79}, + { 0xea, 0xc7, 0x2b, 0x39, 0x9c, 0xb7, 0x91, 0xb3, 0xed, 0x25, 0xcb, 0xa, 0x49, 0xeb, 0x15, 0x7e, 0x69, 0x60, 0x31, 0x97, 0xe0, 0x32, 0x7e, 0xac, 0x54, 0x48, 0x68, 0xd}, + { 0xbd, 0xab, 0x3a, 0x22, 0x70, 0x6, 0x6e, 0x74, 0xe8, 0x21, 0xe, 0xed, 0x7b, 0x5d, 0x43, 0xfb, 0xa1, 0xe2, 0x68, 0x45, 0xb6, 0xc0, 0x37, 0xa8, 0xa7, 0xe2, 0xa1, 0x3b}, + { 0x55, 0x48, 0x59, 0x47, 0xe9, 0xe3, 0xc1, 0x94, 0xa2, 0x9c, 0x8e, 0xca, 0xdd, 0xb1, 0x8e, 0xef, 0xd1, 0x6f, 0xb6, 0x91, 0x9a, 0xeb, 0xb, 0xbb, 0xd8, 0xc1, 0x23, 0x69}, + { 0x63, 0x9, 0xa2, 0xcc, 0x7f, 0xdd, 0x9e, 0xcc, 0xb3, 0x2b, 0x86, 0xd5, 0x57, 0x7a, 0xa5, 0x4a, 0xda, 0x79, 0x89, 0x9a, 0x96, 0x45, 0xf2, 0xe2, 0x99, 0x63, 0xd, 0x31}, + false, + "1 - Message changed" + }, + { + { 0x62, 0x5a, 0x25, 0x28, 0x7c, 0x4a, 0x92, 0x8f, 0xd3, 0x4f, 0x13, 0x8b, 0x91, 0xfc, 0x61, 0xdc, 0x5b, 0x6f, 0xc7, 0x34, 0x16, 0xc7, 0x7c, 0xff, 0xac, 0x92, 0x39, 0xd8, 0x5c, 0x98, 0xfb, 0xab, 0xea, 0xaf, 0x75, 0xe4, 0x53, 0x4c, 0xe4, 0x86, 0xcd, 0x70, 0xc, 0x69, 0xa6, 0x36, 0x1c, 0x62, 0xf5, 0x2d, 0xe, 0x8d, 0xa0, 0xdb, 0xc2, 0x69, 0x54, 0xb6, 0x3b, 0x4c, 0xc1, 0xa, 0x81, 0x70, 0xe9, 0xeb, 0xc1, 0xac, 0x69, 0xcc, 0xd3, 0x99, 0x33, 0x81, 0x20, 0xe7, 0xa8, 0x1c, 0xcc, 0x41, 0xf1, 0x79, 0xfb, 0x92, 0x27, 0x9c, 0xec, 0xbb, 0x67, 0x32, 0xb1, 0x47, 0x3c, 0xd5, 0x17, 0x58, 0xe7, 0x29, 0x6f, 0xff, 0xaf, 0xc1, 0x14, 0x7, 0x1c, 0x11, 0x90, 0x9d, 0xc4, 0x56, 0xb3, 0x77, 0x91, 0xe6, 0x2a, 0xd0, 0x40, 0xe, 0x14, 0x2b, 0xb7, 0xdf, 0x7f, 0xa6, 0xc3, 0x86, 0x2d, 0x7}, + { 0x17, 0xf7, 0x41, 0x26, 0x7b, 0xf3, 0xe8, 0x14, 0x30, 0x46, 0x70, 0x7d, 0x41, 0xea, 0xfc, 0x95, 0x55, 0x95, 0x3f, 0xe5, 0xf5, 0x7d, 0x6c, 0x3, 0x54, 0x52, 0xb2, 0x32}, + { 0xc6, 0x67, 0x55, 0x4d, 0x9a, 0x55, 0xfc, 0x8a, 0xb1, 0x6, 0x22, 0x3, 0xdc, 0xbc, 0xd2, 0xbf, 0x97, 0x69, 0xc6, 0x96, 0xa2, 0x95, 0x35, 0xc, 0xb2, 0x8a, 0xa0, 0x1a}, + { 0x57, 0x40, 0x8b, 0xfc, 0xc6, 0x8e, 0x60, 0xad, 0x0, 0xe, 0xdd, 0xbf, 0xe6, 0xec, 0xcb, 0xe5, 0xf8, 0x7b, 0x98, 0xc9, 0x5d, 0xe0, 0xe0, 0xa2, 0xe0, 0x65, 0xda, 0x92}, + { 0x51, 0x24, 0x9b, 0xdd, 0xc1, 0x49, 0xf0, 0x94, 0x2b, 0xe0, 0x1, 0xb2, 0xf3, 0xd6, 0xf6, 0xd1, 0x7a, 0xc, 0xc3, 0x6f, 0xef, 0xce, 0x14, 0x70, 0x58, 0x94, 0x46, 0x67}, + false, + "3 - S changed" + } +}; + +const size_t ecdsa_p224_test_vectors_count = sizeof(ecdsa_p224_test_vectors) / sizeof(ecdsa_p224_test_vector); +#endif + +#if TEST_VECTOR_EC_P256_EN const ecdsa_p256_test_vector ecdsa_p256_test_vectors[] = { { { 0xe4, 0x79, 0x6d, 0xb5, 0xf7, 0x85, 0xf2, 0x07, 0xaa, 0x30, 0xd3, 0x11, 0x69, 0x3b, 0x37, 0x02, @@ -50,11 +194,11 @@ const ecdsa_p256_test_vector ecdsa_p256_test_vectors[] = { "3 - S Changed" }, { - { 0x06, 0x9a, 0x6e, 0x6b, 0x93, 0xdf, 0xee, 0x6d, 0xf6, 0xef, 0x69, 0x97, 0xcd, 0x80, 0xdd, 0x21,0x82, 0xc3, 0x66, 0x53, 0xce, 0xf1, 0x0c, 0x65, 0x5d, 0x52, 0x45, 0x85, 0x65, 0x54, 0x62, 0xd6, 0x83, 0x87, 0x7f, 0x95, 0xec, 0xc6, 0xd6, 0xc8, 0x16, 0x23, 0xd8, 0xfa, 0xc4, 0xe9, 0x00, 0xed, 0x00, 0x19, 0x96, 0x40, 0x94, 0xe7, 0xde, 0x91, 0xf1, 0x48, 0x19, 0x89, 0xae, 0x18, 0x73, 0x00, 0x45, 0x65, 0x78, 0x9c, 0xbf, 0x5d, 0xc5, 0x6c, 0x62, 0xae, 0xdc, 0x63, 0xf6, 0x2f, 0x3b, 0x89, 0x4c, 0x9c, 0x6f, 0x77, 0x88, 0xc8, 0xec, 0xaa, 0xdc, 0x9b, 0xd0, 0xe8, 0x1a, 0xd9, 0x1b, 0x2b, 0x35, 0x69, 0xea, 0x12, 0x26, 0x0e, 0x93, 0x92, 0x4f, 0xdd, 0xdd, 0x39, 0x72, 0xaf, 0x52, 0x73, 0x19, 0x8f, 0x5e, 0xfd, 0xa0, 0x74, 0x62, 0x19, 0x47, 0x50, 0x17, 0x55, 0x76, 0x16, 0x17, 0x0e, }, - { 0x5c, 0xf0, 0x2a, 0x00, 0xd2, 0x05, 0xbd, 0xfe, 0xe2, 0x01, 0x6f, 0x74, 0x21, 0x80, 0x7f, 0xc3,0x8a, 0xe6, 0x9e, 0x6b, 0x7c, 0xcd, 0x06, 0x4e, 0xe6, 0x89, 0xfc, 0x1a, 0x94, 0xa9, 0xf7, 0xd2, }, - { 0xec, 0x53, 0x0c, 0xe3, 0xcc, 0x5c, 0x9d, 0x1a, 0xf4, 0x63, 0xf2, 0x64, 0xd6, 0x85, 0xaf, 0xe2,0xb4, 0xdb, 0x4b, 0x58, 0x28, 0xd7, 0xe6, 0x1b, 0x74, 0x89, 0x30, 0xf3, 0xce, 0x62, 0x2a, 0x85, }, - { 0xdc, 0x23, 0xd1, 0x30, 0xc6, 0x11, 0x7f, 0xb5, 0x75, 0x12, 0x01, 0x45, 0x5e, 0x99, 0xf3, 0x6f,0x59, 0xab, 0xa1, 0xa6, 0xa2, 0x1c, 0xf2, 0xd0, 0xe7, 0x48, 0x1a, 0x97, 0x45, 0x1d, 0x66, 0x93, }, - { 0xd6, 0xce, 0x77, 0x08, 0xc1, 0x8d, 0xbf, 0x35, 0xd4, 0xf8, 0xaa, 0x72, 0x40, 0x92, 0x2d, 0xc6,0x82, 0x3f, 0x2e, 0x70, 0x58, 0xcb, 0xc1, 0x48, 0x4f, 0xca, 0xd1, 0x59, 0x9d, 0xb5, 0x01, 0x8c, }, + { 0x06, 0x9a, 0x6e, 0x6b, 0x93, 0xdf, 0xee, 0x6d, 0xf6, 0xef, 0x69, 0x97, 0xcd, 0x80, 0xdd, 0x21,0x82, 0xc3, 0x66, 0x53, 0xce, 0xf1, 0x0c, 0x65, 0x5d, 0x52, 0x45, 0x85, 0x65, 0x54, 0x62, 0xd6, 0x83, 0x87, 0x7f, 0x95, 0xec, 0xc6, 0xd6, 0xc8, 0x16, 0x23, 0xd8, 0xfa, 0xc4, 0xe9, 0x00, 0xed, 0x00, 0x19, 0x96, 0x40, 0x94, 0xe7, 0xde, 0x91, 0xf1, 0x48, 0x19, 0x89, 0xae, 0x18, 0x73, 0x00, 0x45, 0x65, 0x78, 0x9c, 0xbf, 0x5d, 0xc5, 0x6c, 0x62, 0xae, 0xdc, 0x63, 0xf6, 0x2f, 0x3b, 0x89, 0x4c, 0x9c, 0x6f, 0x77, 0x88, 0xc8, 0xec, 0xaa, 0xdc, 0x9b, 0xd0, 0xe8, 0x1a, 0xd9, 0x1b, 0x2b, 0x35, 0x69, 0xea, 0x12, 0x26, 0x0e, 0x93, 0x92, 0x4f, 0xdd, 0xdd, 0x39, 0x72, 0xaf, 0x52, 0x73, 0x19, 0x8f, 0x5e, 0xfd, 0xa0, 0x74, 0x62, 0x19, 0x47, 0x50, 0x17, 0x55, 0x76, 0x16, 0x17, 0x0e, }, + { 0x5c, 0xf0, 0x2a, 0x00, 0xd2, 0x05, 0xbd, 0xfe, 0xe2, 0x01, 0x6f, 0x74, 0x21, 0x80, 0x7f, 0xc3,0x8a, 0xe6, 0x9e, 0x6b, 0x7c, 0xcd, 0x06, 0x4e, 0xe6, 0x89, 0xfc, 0x1a, 0x94, 0xa9, 0xf7, 0xd2, }, + { 0xec, 0x53, 0x0c, 0xe3, 0xcc, 0x5c, 0x9d, 0x1a, 0xf4, 0x63, 0xf2, 0x64, 0xd6, 0x85, 0xaf, 0xe2,0xb4, 0xdb, 0x4b, 0x58, 0x28, 0xd7, 0xe6, 0x1b, 0x74, 0x89, 0x30, 0xf3, 0xce, 0x62, 0x2a, 0x85, }, + { 0xdc, 0x23, 0xd1, 0x30, 0xc6, 0x11, 0x7f, 0xb5, 0x75, 0x12, 0x01, 0x45, 0x5e, 0x99, 0xf3, 0x6f,0x59, 0xab, 0xa1, 0xa6, 0xa2, 0x1c, 0xf2, 0xd0, 0xe7, 0x48, 0x1a, 0x97, 0x45, 0x1d, 0x66, 0x93, }, + { 0xd6, 0xce, 0x77, 0x08, 0xc1, 0x8d, 0xbf, 0x35, 0xd4, 0xf8, 0xaa, 0x72, 0x40, 0x92, 0x2d, 0xc6,0x82, 0x3f, 0x2e, 0x70, 0x58, 0xcb, 0xc1, 0x48, 0x4f, 0xca, 0xd1, 0x59, 0x9d, 0xb5, 0x01, 0x8c, }, false, "2 - R Changed" }, @@ -99,104 +243,389 @@ const ecdsa_p256_test_vector ecdsa_p256_test_vectors[] = { "P" }, { - { 0x73, 0xc5, 0xf6, 0xa6, 0x74, 0x56, 0xae, 0x48, 0x20, 0x9b, 0x5f, 0x85, 0xd1, 0xe7, 0xde, 0x77,0x58, 0xbf, 0x23, 0x53, 0x00, 0xc6, 0xae, 0x2b, 0xdc, 0xeb, 0x1d, 0xcb, 0x27, 0xa7, 0x73, 0x0f, 0xb6, 0x8c, 0x95, 0x0b, 0x7f, 0xca, 0xda, 0x0e, 0xcc, 0x46, 0x61, 0xd3, 0x57, 0x82, 0x30, 0xf2, 0x25, 0xa8, 0x75, 0xe6, 0x9a, 0xaa, 0x17, 0xf1, 0xe7, 0x1c, 0x6b, 0xe5, 0xc8, 0x31, 0xf2, 0x26, 0x63, 0xba, 0xc6, 0x3d, 0x0c, 0x7a, 0x96, 0x35, 0xed, 0xb0, 0x04, 0x3f, 0xf8, 0xc6, 0xf2, 0x64, 0x70, 0xf0, 0x2a, 0x7b, 0xc5, 0x65, 0x56, 0xf1, 0x43, 0x7f, 0x06, 0xdf, 0xa2, 0x7b, 0x48, 0x7a, 0x6c, 0x42, 0x90, 0xd8, 0xba, 0xd3, 0x8d, 0x48, 0x79, 0xb3, 0x34, 0xe3, 0x41, 0xba, 0x09, 0x2d, 0xde, 0x4e, 0x4a, 0xe6, 0x94, 0xa9, 0xc0, 0x93, 0x02, 0xe2, 0xdb, 0xf4, 0x43, 0x58, 0x1c, 0x08 }, - { 0xe0, 0xfc, 0x6a, 0x6f, 0x50, 0xe1, 0xc5, 0x74, 0x75, 0x67, 0x3e, 0xe5, 0x4e, 0x3a, 0x57, 0xf9,0xa4, 0x9f, 0x33, 0x28, 0xe7, 0x43, 0xbf, 0x52, 0xf3, 0x35, 0xe3, 0xee, 0xaa, 0x3d, 0x28, 0x64 }, - { 0x7f, 0x59, 0xd6, 0x89, 0xc9, 0x1e, 0x46, 0x36, 0x07, 0xd9, 0x19, 0x4d, 0x99, 0xfa, 0xf3, 0x16,0xe2, 0x54, 0x32, 0x87, 0x08, 0x16, 0xdd, 0xe6, 0x3f, 0x5d, 0x4b, 0x37, 0x3f, 0x12, 0xf2, 0x2a }, - { 0x1d, 0x75, 0x83, 0x0c, 0xd3, 0x6f, 0x4c, 0x9a, 0xa1, 0x81, 0xb2, 0xc4, 0x22, 0x1e, 0x87, 0xf1,0x76, 0xb7, 0xf0, 0x5b, 0x7c, 0x87, 0x82, 0x4e, 0x82, 0xe3, 0x96, 0xc8, 0x83, 0x15, 0xc4, 0x07 }, - { 0xcb, 0x2a, 0xcb, 0x01, 0xda, 0xc9, 0x6e, 0xfc, 0x53, 0xa3, 0x2d, 0x4a, 0x0d, 0x85, 0xd0, 0xc2,0xe4, 0x89, 0x55, 0x21, 0x47, 0x83, 0xec, 0xf5, 0x0a, 0x4f, 0x04, 0x14, 0xa3, 0x19, 0xc0, 0x5a }, + { 0x73, 0xc5, 0xf6, 0xa6, 0x74, 0x56, 0xae, 0x48, 0x20, 0x9b, 0x5f, 0x85, 0xd1, 0xe7, 0xde, 0x77,0x58, 0xbf, 0x23, 0x53, 0x00, 0xc6, 0xae, 0x2b, 0xdc, 0xeb, 0x1d, 0xcb, 0x27, 0xa7, 0x73, 0x0f, 0xb6, 0x8c, 0x95, 0x0b, 0x7f, 0xca, 0xda, 0x0e, 0xcc, 0x46, 0x61, 0xd3, 0x57, 0x82, 0x30, 0xf2, 0x25, 0xa8, 0x75, 0xe6, 0x9a, 0xaa, 0x17, 0xf1, 0xe7, 0x1c, 0x6b, 0xe5, 0xc8, 0x31, 0xf2, 0x26, 0x63, 0xba, 0xc6, 0x3d, 0x0c, 0x7a, 0x96, 0x35, 0xed, 0xb0, 0x04, 0x3f, 0xf8, 0xc6, 0xf2, 0x64, 0x70, 0xf0, 0x2a, 0x7b, 0xc5, 0x65, 0x56, 0xf1, 0x43, 0x7f, 0x06, 0xdf, 0xa2, 0x7b, 0x48, 0x7a, 0x6c, 0x42, 0x90, 0xd8, 0xba, 0xd3, 0x8d, 0x48, 0x79, 0xb3, 0x34, 0xe3, 0x41, 0xba, 0x09, 0x2d, 0xde, 0x4e, 0x4a, 0xe6, 0x94, 0xa9, 0xc0, 0x93, 0x02, 0xe2, 0xdb, 0xf4, 0x43, 0x58, 0x1c, 0x08 }, + { 0xe0, 0xfc, 0x6a, 0x6f, 0x50, 0xe1, 0xc5, 0x74, 0x75, 0x67, 0x3e, 0xe5, 0x4e, 0x3a, 0x57, 0xf9,0xa4, 0x9f, 0x33, 0x28, 0xe7, 0x43, 0xbf, 0x52, 0xf3, 0x35, 0xe3, 0xee, 0xaa, 0x3d, 0x28, 0x64 }, + { 0x7f, 0x59, 0xd6, 0x89, 0xc9, 0x1e, 0x46, 0x36, 0x07, 0xd9, 0x19, 0x4d, 0x99, 0xfa, 0xf3, 0x16,0xe2, 0x54, 0x32, 0x87, 0x08, 0x16, 0xdd, 0xe6, 0x3f, 0x5d, 0x4b, 0x37, 0x3f, 0x12, 0xf2, 0x2a }, + { 0x1d, 0x75, 0x83, 0x0c, 0xd3, 0x6f, 0x4c, 0x9a, 0xa1, 0x81, 0xb2, 0xc4, 0x22, 0x1e, 0x87, 0xf1,0x76, 0xb7, 0xf0, 0x5b, 0x7c, 0x87, 0x82, 0x4e, 0x82, 0xe3, 0x96, 0xc8, 0x83, 0x15, 0xc4, 0x07 }, + { 0xcb, 0x2a, 0xcb, 0x01, 0xda, 0xc9, 0x6e, 0xfc, 0x53, 0xa3, 0x2d, 0x4a, 0x0d, 0x85, 0xd0, 0xc2,0xe4, 0x89, 0x55, 0x21, 0x47, 0x83, 0xec, 0xf5, 0x0a, 0x4f, 0x04, 0x14, 0xa3, 0x19, 0xc0, 0x5a }, true, "P" }, { - { 0x66, 0x60, 0x36, 0xd9, 0xb4, 0xa2, 0x42, 0x6e, 0xd6, 0x58, 0x5a, 0x4e, 0x0f, 0xd9, 0x31, 0xa8,0x76, 0x14, 0x51, 0xd2, 0x9a, 0xb0, 0x4b, 0xd7, 0xdc, 0x6d, 0x0c, 0x5b, 0x9e, 0x38, 0xe6, 0xc2, 0xb2, 0x63, 0xff, 0x6c, 0xb8, 0x37, 0xbd, 0x04, 0x39, 0x9d, 0xe3, 0xd7, 0x57, 0xc6, 0xc7, 0x00, 0x5f, 0x6d, 0x7a, 0x98, 0x70, 0x63, 0xcf, 0x6d, 0x7e, 0x8c, 0xb3, 0x8a, 0x4b, 0xf0, 0xd7, 0x4a, 0x28, 0x25, 0x72, 0xbd, 0x01, 0xd0, 0xf4, 0x1e, 0x3f, 0xd0, 0x66, 0xe3, 0x02, 0x15, 0x75, 0xf0, 0xfa, 0x04, 0xf2, 0x7b, 0x70, 0x0d, 0x5b, 0x7d, 0xdd, 0xdf, 0x50, 0x96, 0x59, 0x93, 0xc3, 0xf9, 0xc7, 0x11, 0x8e, 0xd7, 0x88, 0x88, 0xda, 0x7c, 0xb2, 0x21, 0x84, 0x9b, 0x32, 0x60, 0x59, 0x2b, 0x8e, 0x63, 0x2d, 0x7c, 0x51, 0xe9, 0x35, 0xa0, 0xce, 0xae, 0x15, 0x20, 0x7b, 0xed, 0xd5, 0x48, }, - { 0xa8, 0x49, 0xbe, 0xf5, 0x75, 0xca, 0xc3, 0xc6, 0x92, 0x0f, 0xbc, 0xe6, 0x75, 0xc3, 0xb7, 0x87,0x13, 0x62, 0x09, 0xf8, 0x55, 0xde, 0x19, 0xff, 0xe2, 0xe8, 0xd2, 0x9b, 0x31, 0xa5, 0xad, 0x86, }, - { 0xbf, 0x5f, 0xe4, 0xf7, 0x85, 0x8f, 0x9b, 0x80, 0x5b, 0xd8, 0xdc, 0xc0, 0x5a, 0xd5, 0xe7, 0xfb,0x88, 0x9d, 0xe2, 0xf8, 0x22, 0xf3, 0xd8, 0xb4, 0x16, 0x94, 0xe6, 0xc5, 0x5c, 0x16, 0xb4, 0x71, }, - { 0x25, 0xac, 0xc3, 0xaa, 0x9d, 0x9e, 0x84, 0xc7, 0xab, 0xf0, 0x8f, 0x73, 0xfa, 0x41, 0x95, 0xac,0xc5, 0x06, 0x49, 0x1d, 0x6f, 0xc3, 0x7c, 0xb9, 0x07, 0x45, 0x28, 0xa7, 0xdb, 0x87, 0xb9, 0xd6, }, - { 0x9b, 0x21, 0xd5, 0xb5, 0x25, 0x9e, 0xd3, 0xf2, 0xef, 0x07, 0xdf, 0xec, 0x6c, 0xc9, 0x0d, 0x3a,0x37, 0x85, 0x5d, 0x1c, 0xe1, 0x22, 0xa8, 0x5b, 0xa6, 0xa3, 0x33, 0xf3, 0x07, 0xd3, 0x15, 0x37, }, + { 0x66, 0x60, 0x36, 0xd9, 0xb4, 0xa2, 0x42, 0x6e, 0xd6, 0x58, 0x5a, 0x4e, 0x0f, 0xd9, 0x31, 0xa8,0x76, 0x14, 0x51, 0xd2, 0x9a, 0xb0, 0x4b, 0xd7, 0xdc, 0x6d, 0x0c, 0x5b, 0x9e, 0x38, 0xe6, 0xc2, 0xb2, 0x63, 0xff, 0x6c, 0xb8, 0x37, 0xbd, 0x04, 0x39, 0x9d, 0xe3, 0xd7, 0x57, 0xc6, 0xc7, 0x00, 0x5f, 0x6d, 0x7a, 0x98, 0x70, 0x63, 0xcf, 0x6d, 0x7e, 0x8c, 0xb3, 0x8a, 0x4b, 0xf0, 0xd7, 0x4a, 0x28, 0x25, 0x72, 0xbd, 0x01, 0xd0, 0xf4, 0x1e, 0x3f, 0xd0, 0x66, 0xe3, 0x02, 0x15, 0x75, 0xf0, 0xfa, 0x04, 0xf2, 0x7b, 0x70, 0x0d, 0x5b, 0x7d, 0xdd, 0xdf, 0x50, 0x96, 0x59, 0x93, 0xc3, 0xf9, 0xc7, 0x11, 0x8e, 0xd7, 0x88, 0x88, 0xda, 0x7c, 0xb2, 0x21, 0x84, 0x9b, 0x32, 0x60, 0x59, 0x2b, 0x8e, 0x63, 0x2d, 0x7c, 0x51, 0xe9, 0x35, 0xa0, 0xce, 0xae, 0x15, 0x20, 0x7b, 0xed, 0xd5, 0x48, }, + { 0xa8, 0x49, 0xbe, 0xf5, 0x75, 0xca, 0xc3, 0xc6, 0x92, 0x0f, 0xbc, 0xe6, 0x75, 0xc3, 0xb7, 0x87,0x13, 0x62, 0x09, 0xf8, 0x55, 0xde, 0x19, 0xff, 0xe2, 0xe8, 0xd2, 0x9b, 0x31, 0xa5, 0xad, 0x86, }, + { 0xbf, 0x5f, 0xe4, 0xf7, 0x85, 0x8f, 0x9b, 0x80, 0x5b, 0xd8, 0xdc, 0xc0, 0x5a, 0xd5, 0xe7, 0xfb,0x88, 0x9d, 0xe2, 0xf8, 0x22, 0xf3, 0xd8, 0xb4, 0x16, 0x94, 0xe6, 0xc5, 0x5c, 0x16, 0xb4, 0x71, }, + { 0x25, 0xac, 0xc3, 0xaa, 0x9d, 0x9e, 0x84, 0xc7, 0xab, 0xf0, 0x8f, 0x73, 0xfa, 0x41, 0x95, 0xac,0xc5, 0x06, 0x49, 0x1d, 0x6f, 0xc3, 0x7c, 0xb9, 0x07, 0x45, 0x28, 0xa7, 0xdb, 0x87, 0xb9, 0xd6, }, + { 0x9b, 0x21, 0xd5, 0xb5, 0x25, 0x9e, 0xd3, 0xf2, 0xef, 0x07, 0xdf, 0xec, 0x6c, 0xc9, 0x0d, 0x3a,0x37, 0x85, 0x5d, 0x1c, 0xe1, 0x22, 0xa8, 0x5b, 0xa6, 0xa3, 0x33, 0xf3, 0x07, 0xd3, 0x15, 0x37, }, false, "2 - R changed" }, { - { 0x7e, 0x80, 0x43, 0x6b, 0xce, 0x57, 0x33, 0x9c, 0xe8, 0xda, 0x1b, 0x56, 0x60, 0x14, 0x9a, 0x20,0x24, 0x0b, 0x14, 0x6d, 0x10, 0x8d, 0xee, 0xf3, 0xec, 0x5d, 0xa4, 0xae, 0x25, 0x6f, 0x8f, 0x89, 0x4e, 0xdc, 0xbb, 0xc5, 0x7b, 0x34, 0xce, 0x37, 0x08, 0x9c, 0x0d, 0xaa, 0x17, 0xf0, 0xc4, 0x6c, 0xd8, 0x2b, 0x5a, 0x15, 0x99, 0x31, 0x4f, 0xd7, 0x9d, 0x2f, 0xd2, 0xf4, 0x46, 0xbd, 0x5a, 0x25, 0xb8, 0xe3, 0x2f, 0xcf, 0x05, 0xb7, 0x6d, 0x64, 0x45, 0x73, 0xa6, 0xdf, 0x4a, 0xd1, 0xdf, 0xea, 0x70, 0x7b, 0x47, 0x9d, 0x97, 0x23, 0x7a, 0x34, 0x6f, 0x1e, 0xc6, 0x32, 0xea, 0x56, 0x60, 0xef, 0xb5, 0x7e, 0x87, 0x17, 0xa8, 0x62, 0x8d, 0x7f, 0x82, 0xaf, 0x50, 0xa4, 0xe8, 0x4b, 0x11, 0xf2, 0x1b, 0xdf, 0xf6, 0x83, 0x91, 0x96, 0xa8, 0x80, 0xae, 0x20, 0xb2, 0xa0, 0x91, 0x8d, 0x58, 0xcd, }, - { 0x3d, 0xfb, 0x6f, 0x40, 0xf2, 0x47, 0x1b, 0x29, 0xb7, 0x7f, 0xdc, 0xcb, 0xa7, 0x2d, 0x37, 0xc2,0x1b, 0xba, 0x01, 0x9e, 0xfa, 0x40, 0xc1, 0xc8, 0xf9, 0x1e, 0xc4, 0x05, 0xd7, 0xdc, 0xc5, 0xdf, }, - { 0xf2, 0x2f, 0x95, 0x3f, 0x1e, 0x39, 0x5a, 0x52, 0xea, 0xd7, 0xf3, 0xae, 0x3f, 0xc4, 0x74, 0x51,0xb4, 0x38, 0x11, 0x7b, 0x1e, 0x04, 0xd6, 0x13, 0xbc, 0x85, 0x55, 0xb7, 0xd6, 0xe6, 0xd1, 0xbb, }, - { 0x54, 0x88, 0x86, 0x27, 0x8e, 0x5e, 0xc2, 0x6b, 0xed, 0x81, 0x1d, 0xbb, 0x72, 0xdb, 0x1e, 0x15,0x4b, 0x6f, 0x17, 0xbe, 0x70, 0xde, 0xb1, 0xb2, 0x10, 0x10, 0x7d, 0xec, 0xb1, 0xec, 0x2a, 0x5a, }, - { 0xe9, 0x3b, 0xfe, 0xbd, 0x2f, 0x14, 0xf3, 0xd8, 0x27, 0xca, 0x32, 0xb4, 0x64, 0xbe, 0x6e, 0x69,0x18, 0x7f, 0x5e, 0xdb, 0xd5, 0x2d, 0xef, 0x4f, 0x96, 0x59, 0x9c, 0x37, 0xd5, 0x8e, 0xee, 0x75, }, + { 0x7e, 0x80, 0x43, 0x6b, 0xce, 0x57, 0x33, 0x9c, 0xe8, 0xda, 0x1b, 0x56, 0x60, 0x14, 0x9a, 0x20,0x24, 0x0b, 0x14, 0x6d, 0x10, 0x8d, 0xee, 0xf3, 0xec, 0x5d, 0xa4, 0xae, 0x25, 0x6f, 0x8f, 0x89, 0x4e, 0xdc, 0xbb, 0xc5, 0x7b, 0x34, 0xce, 0x37, 0x08, 0x9c, 0x0d, 0xaa, 0x17, 0xf0, 0xc4, 0x6c, 0xd8, 0x2b, 0x5a, 0x15, 0x99, 0x31, 0x4f, 0xd7, 0x9d, 0x2f, 0xd2, 0xf4, 0x46, 0xbd, 0x5a, 0x25, 0xb8, 0xe3, 0x2f, 0xcf, 0x05, 0xb7, 0x6d, 0x64, 0x45, 0x73, 0xa6, 0xdf, 0x4a, 0xd1, 0xdf, 0xea, 0x70, 0x7b, 0x47, 0x9d, 0x97, 0x23, 0x7a, 0x34, 0x6f, 0x1e, 0xc6, 0x32, 0xea, 0x56, 0x60, 0xef, 0xb5, 0x7e, 0x87, 0x17, 0xa8, 0x62, 0x8d, 0x7f, 0x82, 0xaf, 0x50, 0xa4, 0xe8, 0x4b, 0x11, 0xf2, 0x1b, 0xdf, 0xf6, 0x83, 0x91, 0x96, 0xa8, 0x80, 0xae, 0x20, 0xb2, 0xa0, 0x91, 0x8d, 0x58, 0xcd, }, + { 0x3d, 0xfb, 0x6f, 0x40, 0xf2, 0x47, 0x1b, 0x29, 0xb7, 0x7f, 0xdc, 0xcb, 0xa7, 0x2d, 0x37, 0xc2,0x1b, 0xba, 0x01, 0x9e, 0xfa, 0x40, 0xc1, 0xc8, 0xf9, 0x1e, 0xc4, 0x05, 0xd7, 0xdc, 0xc5, 0xdf, }, + { 0xf2, 0x2f, 0x95, 0x3f, 0x1e, 0x39, 0x5a, 0x52, 0xea, 0xd7, 0xf3, 0xae, 0x3f, 0xc4, 0x74, 0x51,0xb4, 0x38, 0x11, 0x7b, 0x1e, 0x04, 0xd6, 0x13, 0xbc, 0x85, 0x55, 0xb7, 0xd6, 0xe6, 0xd1, 0xbb, }, + { 0x54, 0x88, 0x86, 0x27, 0x8e, 0x5e, 0xc2, 0x6b, 0xed, 0x81, 0x1d, 0xbb, 0x72, 0xdb, 0x1e, 0x15,0x4b, 0x6f, 0x17, 0xbe, 0x70, 0xde, 0xb1, 0xb2, 0x10, 0x10, 0x7d, 0xec, 0xb1, 0xec, 0x2a, 0x5a, }, + { 0xe9, 0x3b, 0xfe, 0xbd, 0x2f, 0x14, 0xf3, 0xd8, 0x27, 0xca, 0x32, 0xb4, 0x64, 0xbe, 0x6e, 0x69,0x18, 0x7f, 0x5e, 0xdb, 0xd5, 0x2d, 0xef, 0x4f, 0x96, 0x59, 0x9c, 0x37, 0xd5, 0x8e, 0xee, 0x75, }, false, "4 - Q changed" }, { - { 0x16, 0x69, 0xbf, 0xb6, 0x57, 0xfd, 0xc6, 0x2c, 0x3d, 0xdd, 0x63, 0x26, 0x97, 0x87, 0xfc, 0x1c,0x96, 0x9f, 0x18, 0x50, 0xfb, 0x04, 0xc9, 0x33, 0xdd, 0xa0, 0x63, 0xef, 0x74, 0xa5, 0x6c, 0xe1, 0x3e, 0x3a, 0x64, 0x97, 0x00, 0x82, 0x0f, 0x00, 0x61, 0xef, 0xab, 0xf8, 0x49, 0xa8, 0x5d, 0x47, 0x43, 0x26, 0xc8, 0xa5, 0x41, 0xd9, 0x98, 0x30, 0xee, 0xa8, 0x13, 0x1e, 0xae, 0xa5, 0x84, 0xf2, 0x2d, 0x88, 0xc3, 0x53, 0x96, 0x5d, 0xab, 0xcd, 0xc4, 0xbf, 0x6b, 0x55, 0x94, 0x9f, 0xd5, 0x29, 0x50, 0x7d, 0xfb, 0x80, 0x3a, 0xb6, 0xb4, 0x80, 0xcd, 0x73, 0xca, 0x0b, 0xa0, 0x0c, 0xa1, 0x9c, 0x43, 0x88, 0x49, 0xe2, 0xce, 0xa2, 0x62, 0xa1, 0xc5, 0x7d, 0x8f, 0x81, 0xcd, 0x25, 0x7f, 0xb5, 0x8e, 0x19, 0xde, 0xc7, 0x90, 0x4d, 0xa9, 0x7d, 0x83, 0x86, 0xe8, 0x7b, 0x84, 0x94, 0x81, 0x69, }, - { 0x69, 0xb7, 0x66, 0x70, 0x56, 0xe1, 0xe1, 0x1d, 0x6c, 0xaf, 0x6e, 0x45, 0x64, 0x3f, 0x8b, 0x21,0xe7, 0xa4, 0xbe, 0xbd, 0xa4, 0x63, 0xc7, 0xfd, 0xbc, 0x13, 0xbc, 0x98, 0xef, 0xbd, 0x02, 0x14, }, - { 0xd3, 0xf9, 0xb1, 0x2e, 0xb4, 0x6c, 0x7c, 0x6f, 0xda, 0x0d, 0xa3, 0xfc, 0x85, 0xbc, 0x1f, 0xd8,0x31, 0x55, 0x7f, 0x9a, 0xbc, 0x90, 0x2a, 0x3b, 0xe3, 0xcb, 0x3e, 0x8b, 0xe7, 0xd1, 0xaa, 0x2f, }, - { 0x28, 0x8f, 0x7a, 0x1c, 0xd3, 0x91, 0x84, 0x2c, 0xce, 0x21, 0xf0, 0x0e, 0x6f, 0x15, 0x47, 0x1c,0x04, 0xdc, 0x18, 0x2f, 0xe4, 0xb1, 0x4d, 0x92, 0xdc, 0x18, 0x91, 0x08, 0x79, 0x79, 0x97, 0x90, }, - { 0x24, 0x7b, 0x3c, 0x4e, 0x89, 0xa3, 0xbc, 0xad, 0xfe, 0xa7, 0x3c, 0x7b, 0xfd, 0x36, 0x1d, 0xef,0x43, 0x71, 0x5f, 0xa3, 0x82, 0xb8, 0xc3, 0xed, 0xf4, 0xae, 0x15, 0xd6, 0xe5, 0x5e, 0x99, 0x79, }, + { 0x16, 0x69, 0xbf, 0xb6, 0x57, 0xfd, 0xc6, 0x2c, 0x3d, 0xdd, 0x63, 0x26, 0x97, 0x87, 0xfc, 0x1c,0x96, 0x9f, 0x18, 0x50, 0xfb, 0x04, 0xc9, 0x33, 0xdd, 0xa0, 0x63, 0xef, 0x74, 0xa5, 0x6c, 0xe1, 0x3e, 0x3a, 0x64, 0x97, 0x00, 0x82, 0x0f, 0x00, 0x61, 0xef, 0xab, 0xf8, 0x49, 0xa8, 0x5d, 0x47, 0x43, 0x26, 0xc8, 0xa5, 0x41, 0xd9, 0x98, 0x30, 0xee, 0xa8, 0x13, 0x1e, 0xae, 0xa5, 0x84, 0xf2, 0x2d, 0x88, 0xc3, 0x53, 0x96, 0x5d, 0xab, 0xcd, 0xc4, 0xbf, 0x6b, 0x55, 0x94, 0x9f, 0xd5, 0x29, 0x50, 0x7d, 0xfb, 0x80, 0x3a, 0xb6, 0xb4, 0x80, 0xcd, 0x73, 0xca, 0x0b, 0xa0, 0x0c, 0xa1, 0x9c, 0x43, 0x88, 0x49, 0xe2, 0xce, 0xa2, 0x62, 0xa1, 0xc5, 0x7d, 0x8f, 0x81, 0xcd, 0x25, 0x7f, 0xb5, 0x8e, 0x19, 0xde, 0xc7, 0x90, 0x4d, 0xa9, 0x7d, 0x83, 0x86, 0xe8, 0x7b, 0x84, 0x94, 0x81, 0x69, }, + { 0x69, 0xb7, 0x66, 0x70, 0x56, 0xe1, 0xe1, 0x1d, 0x6c, 0xaf, 0x6e, 0x45, 0x64, 0x3f, 0x8b, 0x21,0xe7, 0xa4, 0xbe, 0xbd, 0xa4, 0x63, 0xc7, 0xfd, 0xbc, 0x13, 0xbc, 0x98, 0xef, 0xbd, 0x02, 0x14, }, + { 0xd3, 0xf9, 0xb1, 0x2e, 0xb4, 0x6c, 0x7c, 0x6f, 0xda, 0x0d, 0xa3, 0xfc, 0x85, 0xbc, 0x1f, 0xd8,0x31, 0x55, 0x7f, 0x9a, 0xbc, 0x90, 0x2a, 0x3b, 0xe3, 0xcb, 0x3e, 0x8b, 0xe7, 0xd1, 0xaa, 0x2f, }, + { 0x28, 0x8f, 0x7a, 0x1c, 0xd3, 0x91, 0x84, 0x2c, 0xce, 0x21, 0xf0, 0x0e, 0x6f, 0x15, 0x47, 0x1c,0x04, 0xdc, 0x18, 0x2f, 0xe4, 0xb1, 0x4d, 0x92, 0xdc, 0x18, 0x91, 0x08, 0x79, 0x79, 0x97, 0x90, }, + { 0x24, 0x7b, 0x3c, 0x4e, 0x89, 0xa3, 0xbc, 0xad, 0xfe, 0xa7, 0x3c, 0x7b, 0xfd, 0x36, 0x1d, 0xef,0x43, 0x71, 0x5f, 0xa3, 0x82, 0xb8, 0xc3, 0xed, 0xf4, 0xae, 0x15, 0xd6, 0xe5, 0x5e, 0x99, 0x79, }, false, "1 - Message changed" }, { - { 0x3f, 0xe6, 0x0d, 0xd9, 0xad, 0x6c, 0xac, 0xcf, 0x5a, 0x6f, 0x58, 0x3b, 0x3a, 0xe6, 0x59, 0x53,0x56, 0x34, 0x46, 0xc4, 0x51, 0x0b, 0x70, 0xda, 0x11, 0x5f, 0xfa, 0xa0, 0xba, 0x04, 0xc0, 0x76, 0x11, 0x5c, 0x70, 0x43, 0xab, 0x87, 0x33, 0x40, 0x3c, 0xd6, 0x9c, 0x7d, 0x14, 0xc2, 0x12, 0xc6, 0x55, 0xc0, 0x7b, 0x43, 0xa7, 0xc7, 0x1b, 0x9a, 0x4c, 0xff, 0xe2, 0x2c, 0x26, 0x84, 0x78, 0x8e, 0xc6, 0x87, 0x0d, 0xc2, 0x01, 0x3f, 0x26, 0x91, 0x72, 0xc8, 0x22, 0x25, 0x6f, 0x9e, 0x7c, 0xc6, 0x74, 0x79, 0x1b, 0xf2, 0xd8, 0x48, 0x6c, 0x0f, 0x56, 0x84, 0x28, 0x3e, 0x16, 0x49, 0x57, 0x6e, 0xfc, 0x98, 0x2e, 0xde, 0x17, 0xc7, 0xb7, 0x4b, 0x21, 0x47, 0x54, 0xd7, 0x04, 0x02, 0xfb, 0x4b, 0xb4, 0x5a, 0xd0, 0x86, 0xcf, 0x2c, 0xf7, 0x6b, 0x3d, 0x63, 0xf7, 0xfc, 0xe3, 0x9a, 0xc9, 0x70, }, - { 0xbf, 0x02, 0xcb, 0xcf, 0x6d, 0x8c, 0xc2, 0x6e, 0x91, 0x76, 0x6d, 0x8a, 0xf0, 0xb1, 0x64, 0xfc,0x59, 0x68, 0x53, 0x5e, 0x84, 0xc1, 0x58, 0xeb, 0x3b, 0xc4, 0xe2, 0xd7, 0x9c, 0x3c, 0xc6, 0x82, }, - { 0x06, 0x9b, 0xa6, 0xcb, 0x06, 0xb4, 0x9d, 0x60, 0x81, 0x20, 0x66, 0xaf, 0xa1, 0x6e, 0xcf, 0x7b,0x51, 0x35, 0x2f, 0x2c, 0x03, 0xbd, 0x93, 0xec, 0x22, 0x08, 0x22, 0xb1, 0xf3, 0xdf, 0xba, 0x03, }, - { 0xf5, 0xac, 0xb0, 0x6c, 0x59, 0xc2, 0xb4, 0x92, 0x7f, 0xb8, 0x52, 0xfa, 0xa0, 0x7f, 0xaf, 0x4b,0x18, 0x52, 0xbb, 0xb5, 0xd0, 0x68, 0x40, 0x93, 0x5e, 0x84, 0x9c, 0x4d, 0x29, 0x3d, 0x1b, 0xad, }, - { 0x04, 0x9d, 0xab, 0x79, 0xc8, 0x9c, 0xc0, 0x2f, 0x14, 0x84, 0xc4, 0x37, 0xf5, 0x23, 0xe0, 0x80,0xa7, 0x5f, 0x13, 0x49, 0x17, 0xfd, 0xa7, 0x52, 0xf2, 0xd5, 0xca, 0x39, 0x7a, 0xdd, 0xfe, 0x5d, }, + { 0x3f, 0xe6, 0x0d, 0xd9, 0xad, 0x6c, 0xac, 0xcf, 0x5a, 0x6f, 0x58, 0x3b, 0x3a, 0xe6, 0x59, 0x53,0x56, 0x34, 0x46, 0xc4, 0x51, 0x0b, 0x70, 0xda, 0x11, 0x5f, 0xfa, 0xa0, 0xba, 0x04, 0xc0, 0x76, 0x11, 0x5c, 0x70, 0x43, 0xab, 0x87, 0x33, 0x40, 0x3c, 0xd6, 0x9c, 0x7d, 0x14, 0xc2, 0x12, 0xc6, 0x55, 0xc0, 0x7b, 0x43, 0xa7, 0xc7, 0x1b, 0x9a, 0x4c, 0xff, 0xe2, 0x2c, 0x26, 0x84, 0x78, 0x8e, 0xc6, 0x87, 0x0d, 0xc2, 0x01, 0x3f, 0x26, 0x91, 0x72, 0xc8, 0x22, 0x25, 0x6f, 0x9e, 0x7c, 0xc6, 0x74, 0x79, 0x1b, 0xf2, 0xd8, 0x48, 0x6c, 0x0f, 0x56, 0x84, 0x28, 0x3e, 0x16, 0x49, 0x57, 0x6e, 0xfc, 0x98, 0x2e, 0xde, 0x17, 0xc7, 0xb7, 0x4b, 0x21, 0x47, 0x54, 0xd7, 0x04, 0x02, 0xfb, 0x4b, 0xb4, 0x5a, 0xd0, 0x86, 0xcf, 0x2c, 0xf7, 0x6b, 0x3d, 0x63, 0xf7, 0xfc, 0xe3, 0x9a, 0xc9, 0x70, }, + { 0xbf, 0x02, 0xcb, 0xcf, 0x6d, 0x8c, 0xc2, 0x6e, 0x91, 0x76, 0x6d, 0x8a, 0xf0, 0xb1, 0x64, 0xfc,0x59, 0x68, 0x53, 0x5e, 0x84, 0xc1, 0x58, 0xeb, 0x3b, 0xc4, 0xe2, 0xd7, 0x9c, 0x3c, 0xc6, 0x82, }, + { 0x06, 0x9b, 0xa6, 0xcb, 0x06, 0xb4, 0x9d, 0x60, 0x81, 0x20, 0x66, 0xaf, 0xa1, 0x6e, 0xcf, 0x7b,0x51, 0x35, 0x2f, 0x2c, 0x03, 0xbd, 0x93, 0xec, 0x22, 0x08, 0x22, 0xb1, 0xf3, 0xdf, 0xba, 0x03, }, + { 0xf5, 0xac, 0xb0, 0x6c, 0x59, 0xc2, 0xb4, 0x92, 0x7f, 0xb8, 0x52, 0xfa, 0xa0, 0x7f, 0xaf, 0x4b,0x18, 0x52, 0xbb, 0xb5, 0xd0, 0x68, 0x40, 0x93, 0x5e, 0x84, 0x9c, 0x4d, 0x29, 0x3d, 0x1b, 0xad, }, + { 0x04, 0x9d, 0xab, 0x79, 0xc8, 0x9c, 0xc0, 0x2f, 0x14, 0x84, 0xc4, 0x37, 0xf5, 0x23, 0xe0, 0x80,0xa7, 0x5f, 0x13, 0x49, 0x17, 0xfd, 0xa7, 0x52, 0xf2, 0xd5, 0xca, 0x39, 0x7a, 0xdd, 0xfe, 0x5d, }, false, "3 - S changed" }, { - { 0x98, 0x3a, 0x71, 0xb9, 0x99, 0x4d, 0x95, 0xe8, 0x76, 0xd8, 0x4d, 0x28, 0x94, 0x6a, 0x04, 0x1f,0x8f, 0x0a, 0x3f, 0x54, 0x4c, 0xfc, 0xc0, 0x55, 0x49, 0x65, 0x80, 0xf1, 0xdf, 0xd4, 0xe3, 0x12, 0xa2, 0xad, 0x41, 0x8f, 0xe6, 0x9d, 0xbc, 0x61, 0xdb, 0x23, 0x0c, 0xc0, 0xc0, 0xed, 0x97, 0xe3, 0x60, 0xab, 0xab, 0x7d, 0x6f, 0xf4, 0xb8, 0x1e, 0xe9, 0x70, 0xa7, 0xe9, 0x74, 0x66, 0xac, 0xfd, 0x96, 0x44, 0xf8, 0x28, 0xff, 0xec, 0x53, 0x8a, 0xbc, 0x38, 0x3d, 0x0e, 0x92, 0x32, 0x6d, 0x1c, 0x88, 0xc5, 0x5e, 0x1f, 0x46, 0xa6, 0x68, 0xa0, 0x39, 0xbe, 0xaa, 0x1b, 0xe6, 0x31, 0xa8, 0x91, 0x29, 0x93, 0x8c, 0x00, 0xa8, 0x1a, 0x3a, 0xe4, 0x6d, 0x4a, 0xec, 0xbf, 0x97, 0x07, 0xf7, 0x64, 0xdb, 0xac, 0xce, 0xa3, 0xef, 0x76, 0x65, 0xe4, 0xc4, 0x30, 0x7f, 0xa0, 0xb0, 0xa3, 0x07, 0x5c, }, - { 0x22, 0x4a, 0x4d, 0x65, 0xb9, 0x58, 0xf6, 0xd6, 0xaf, 0xb2, 0x90, 0x48, 0x63, 0xef, 0xd2, 0xa7,0x34, 0xb3, 0x17, 0x98, 0x88, 0x48, 0x01, 0xfc, 0xab, 0x5a, 0x59, 0x0f, 0x4d, 0x6d, 0xa9, 0xde, }, - { 0x17, 0x8d, 0x51, 0xfd, 0xda, 0xda, 0x62, 0x80, 0x6f, 0x09, 0x7a, 0xa6, 0x15, 0xd3, 0x3b, 0x8f,0x24, 0x04, 0xe6, 0xb1, 0x47, 0x9f, 0x5f, 0xd4, 0x85, 0x9d, 0x59, 0x57, 0x34, 0xd6, 0xd2, 0xb9, }, - { 0x87, 0xb9, 0x3e, 0xe2, 0xfe, 0xcf, 0xda, 0x54, 0xde, 0xb8, 0xdf, 0xf8, 0xe4, 0x26, 0xf3, 0xc7,0x2c, 0x88, 0x64, 0x99, 0x1f, 0x8e, 0xc2, 0xb3, 0x20, 0x5b, 0xb3, 0xb4, 0x16, 0xde, 0x93, 0xd2, }, - { 0x40, 0x44, 0xa2, 0x4d, 0xf8, 0x5b, 0xe0, 0xcc, 0x76, 0xf2, 0x1a, 0x44, 0x30, 0xb7, 0x5b, 0x8e,0x77, 0xb9, 0x32, 0xa8, 0x7f, 0x51, 0xe4, 0xec, 0xcb, 0xc4, 0x5c, 0x26, 0x3e, 0xbf, 0x8f, 0x66, }, + { 0x98, 0x3a, 0x71, 0xb9, 0x99, 0x4d, 0x95, 0xe8, 0x76, 0xd8, 0x4d, 0x28, 0x94, 0x6a, 0x04, 0x1f,0x8f, 0x0a, 0x3f, 0x54, 0x4c, 0xfc, 0xc0, 0x55, 0x49, 0x65, 0x80, 0xf1, 0xdf, 0xd4, 0xe3, 0x12, 0xa2, 0xad, 0x41, 0x8f, 0xe6, 0x9d, 0xbc, 0x61, 0xdb, 0x23, 0x0c, 0xc0, 0xc0, 0xed, 0x97, 0xe3, 0x60, 0xab, 0xab, 0x7d, 0x6f, 0xf4, 0xb8, 0x1e, 0xe9, 0x70, 0xa7, 0xe9, 0x74, 0x66, 0xac, 0xfd, 0x96, 0x44, 0xf8, 0x28, 0xff, 0xec, 0x53, 0x8a, 0xbc, 0x38, 0x3d, 0x0e, 0x92, 0x32, 0x6d, 0x1c, 0x88, 0xc5, 0x5e, 0x1f, 0x46, 0xa6, 0x68, 0xa0, 0x39, 0xbe, 0xaa, 0x1b, 0xe6, 0x31, 0xa8, 0x91, 0x29, 0x93, 0x8c, 0x00, 0xa8, 0x1a, 0x3a, 0xe4, 0x6d, 0x4a, 0xec, 0xbf, 0x97, 0x07, 0xf7, 0x64, 0xdb, 0xac, 0xce, 0xa3, 0xef, 0x76, 0x65, 0xe4, 0xc4, 0x30, 0x7f, 0xa0, 0xb0, 0xa3, 0x07, 0x5c, }, + { 0x22, 0x4a, 0x4d, 0x65, 0xb9, 0x58, 0xf6, 0xd6, 0xaf, 0xb2, 0x90, 0x48, 0x63, 0xef, 0xd2, 0xa7,0x34, 0xb3, 0x17, 0x98, 0x88, 0x48, 0x01, 0xfc, 0xab, 0x5a, 0x59, 0x0f, 0x4d, 0x6d, 0xa9, 0xde, }, + { 0x17, 0x8d, 0x51, 0xfd, 0xda, 0xda, 0x62, 0x80, 0x6f, 0x09, 0x7a, 0xa6, 0x15, 0xd3, 0x3b, 0x8f,0x24, 0x04, 0xe6, 0xb1, 0x47, 0x9f, 0x5f, 0xd4, 0x85, 0x9d, 0x59, 0x57, 0x34, 0xd6, 0xd2, 0xb9, }, + { 0x87, 0xb9, 0x3e, 0xe2, 0xfe, 0xcf, 0xda, 0x54, 0xde, 0xb8, 0xdf, 0xf8, 0xe4, 0x26, 0xf3, 0xc7,0x2c, 0x88, 0x64, 0x99, 0x1f, 0x8e, 0xc2, 0xb3, 0x20, 0x5b, 0xb3, 0xb4, 0x16, 0xde, 0x93, 0xd2, }, + { 0x40, 0x44, 0xa2, 0x4d, 0xf8, 0x5b, 0xe0, 0xcc, 0x76, 0xf2, 0x1a, 0x44, 0x30, 0xb7, 0x5b, 0x8e,0x77, 0xb9, 0x32, 0xa8, 0x7f, 0x51, 0xe4, 0xec, 0xcb, 0xc4, 0x5c, 0x26, 0x3e, 0xbf, 0x8f, 0x66, }, false, "2 - R changed" }, { - { 0x4a, 0x8c, 0x07, 0x1a, 0xc4, 0xfd, 0x0d, 0x52, 0xfa, 0xa4, 0x07, 0xb0, 0xfe, 0x5d, 0xab, 0x75,0x9f, 0x73, 0x94, 0xa5, 0x83, 0x21, 0x27, 0xf2, 0xa3, 0x49, 0x8f, 0x34, 0xaa, 0xc2, 0x87, 0x33, 0x9e, 0x04, 0x3b, 0x4f, 0xfa, 0x79, 0x52, 0x8f, 0xaf, 0x19, 0x9d, 0xc9, 0x17, 0xf7, 0xb0, 0x66, 0xad, 0x65, 0x50, 0x5d, 0xab, 0x0e, 0x11, 0xe6, 0x94, 0x85, 0x15, 0x05, 0x2c, 0xe2, 0x0c, 0xfd, 0xb8, 0x92, 0xff, 0xb8, 0xaa, 0x9b, 0xf3, 0xf1, 0xaa, 0x5b, 0xe3, 0x0a, 0x5b, 0xbe, 0x85, 0x82, 0x3b, 0xdd, 0xf7, 0x0b, 0x39, 0xfd, 0x7e, 0xbd, 0x4a, 0x93, 0xa2, 0xf7, 0x54, 0x72, 0xc1, 0xd4, 0xf6, 0x06, 0x24, 0x7a, 0x98, 0x21, 0xf1, 0xa8, 0xc4, 0x5a, 0x6c, 0xb8, 0x05, 0x45, 0xde, 0x2e, 0x0c, 0x6c, 0x01, 0x74, 0xe2, 0x39, 0x20, 0x88, 0xc7, 0x54, 0xe9, 0xc8, 0x44, 0x3e, 0xb5, 0xaf, }, - { 0x43, 0x69, 0x1c, 0x77, 0x95, 0xa5, 0x7e, 0xad, 0x8c, 0x5c, 0x68, 0x53, 0x6f, 0xe9, 0x34, 0x53,0x8d, 0x46, 0xf1, 0x28, 0x89, 0x68, 0x0a, 0x9c, 0xb6, 0xd0, 0x55, 0xa0, 0x66, 0x22, 0x83, 0x69, }, - { 0xf8, 0x79, 0x01, 0x10, 0xb3, 0xc3, 0xb2, 0x81, 0xaa, 0x1e, 0xae, 0x03, 0x7d, 0x4f, 0x12, 0x34,0xaf, 0xf5, 0x87, 0xd9, 0x03, 0xd9, 0x3b, 0xa3, 0xaf, 0x22, 0x5c, 0x27, 0xdd, 0xc9, 0xcc, 0xac, }, - { 0x8a, 0xcd, 0x62, 0xe8, 0xc2, 0x62, 0xfa, 0x50, 0xdd, 0x98, 0x40, 0x48, 0x09, 0x69, 0xf4, 0xef,0x70, 0xf2, 0x18, 0xeb, 0xf8, 0xef, 0x95, 0x84, 0xf1, 0x99, 0x03, 0x11, 0x32, 0xc6, 0xb1, 0xce, }, - { 0xcf, 0xca, 0x7e, 0xd3, 0xd4, 0x34, 0x7f, 0xb2, 0xa2, 0x9e, 0x52, 0x6b, 0x43, 0xc3, 0x48, 0xae,0x1c, 0xe6, 0xc6, 0x0d, 0x44, 0xf3, 0x19, 0x1b, 0x6d, 0x8e, 0xa3, 0xa2, 0xd9, 0xc9, 0x21, 0x54, }, + { 0x4a, 0x8c, 0x07, 0x1a, 0xc4, 0xfd, 0x0d, 0x52, 0xfa, 0xa4, 0x07, 0xb0, 0xfe, 0x5d, 0xab, 0x75,0x9f, 0x73, 0x94, 0xa5, 0x83, 0x21, 0x27, 0xf2, 0xa3, 0x49, 0x8f, 0x34, 0xaa, 0xc2, 0x87, 0x33, 0x9e, 0x04, 0x3b, 0x4f, 0xfa, 0x79, 0x52, 0x8f, 0xaf, 0x19, 0x9d, 0xc9, 0x17, 0xf7, 0xb0, 0x66, 0xad, 0x65, 0x50, 0x5d, 0xab, 0x0e, 0x11, 0xe6, 0x94, 0x85, 0x15, 0x05, 0x2c, 0xe2, 0x0c, 0xfd, 0xb8, 0x92, 0xff, 0xb8, 0xaa, 0x9b, 0xf3, 0xf1, 0xaa, 0x5b, 0xe3, 0x0a, 0x5b, 0xbe, 0x85, 0x82, 0x3b, 0xdd, 0xf7, 0x0b, 0x39, 0xfd, 0x7e, 0xbd, 0x4a, 0x93, 0xa2, 0xf7, 0x54, 0x72, 0xc1, 0xd4, 0xf6, 0x06, 0x24, 0x7a, 0x98, 0x21, 0xf1, 0xa8, 0xc4, 0x5a, 0x6c, 0xb8, 0x05, 0x45, 0xde, 0x2e, 0x0c, 0x6c, 0x01, 0x74, 0xe2, 0x39, 0x20, 0x88, 0xc7, 0x54, 0xe9, 0xc8, 0x44, 0x3e, 0xb5, 0xaf, }, + { 0x43, 0x69, 0x1c, 0x77, 0x95, 0xa5, 0x7e, 0xad, 0x8c, 0x5c, 0x68, 0x53, 0x6f, 0xe9, 0x34, 0x53,0x8d, 0x46, 0xf1, 0x28, 0x89, 0x68, 0x0a, 0x9c, 0xb6, 0xd0, 0x55, 0xa0, 0x66, 0x22, 0x83, 0x69, }, + { 0xf8, 0x79, 0x01, 0x10, 0xb3, 0xc3, 0xb2, 0x81, 0xaa, 0x1e, 0xae, 0x03, 0x7d, 0x4f, 0x12, 0x34,0xaf, 0xf5, 0x87, 0xd9, 0x03, 0xd9, 0x3b, 0xa3, 0xaf, 0x22, 0x5c, 0x27, 0xdd, 0xc9, 0xcc, 0xac, }, + { 0x8a, 0xcd, 0x62, 0xe8, 0xc2, 0x62, 0xfa, 0x50, 0xdd, 0x98, 0x40, 0x48, 0x09, 0x69, 0xf4, 0xef,0x70, 0xf2, 0x18, 0xeb, 0xf8, 0xef, 0x95, 0x84, 0xf1, 0x99, 0x03, 0x11, 0x32, 0xc6, 0xb1, 0xce, }, + { 0xcf, 0xca, 0x7e, 0xd3, 0xd4, 0x34, 0x7f, 0xb2, 0xa2, 0x9e, 0x52, 0x6b, 0x43, 0xc3, 0x48, 0xae,0x1c, 0xe6, 0xc6, 0x0d, 0x44, 0xf3, 0x19, 0x1b, 0x6d, 0x8e, 0xa3, 0xa2, 0xd9, 0xc9, 0x21, 0x54, }, false, "3 - S changed" }, { - { 0x0a, 0x3a, 0x12, 0xc3, 0x08, 0x4c, 0x86, 0x5d, 0xaf, 0x1d, 0x30, 0x2c, 0x78, 0x21, 0x5d, 0x39,0xbf, 0xe0, 0xb8, 0xbf, 0x28, 0x27, 0x2b, 0x3c, 0x0b, 0x74, 0xbe, 0xb4, 0xb7, 0x40, 0x9d, 0xb0, 0x71, 0x82, 0x39, 0xde, 0x70, 0x07, 0x85, 0x58, 0x15, 0x14, 0x32, 0x1c, 0x64, 0x40, 0xa4, 0xbb, 0xae, 0xa4, 0xc7, 0x6f, 0xa4, 0x74, 0x01, 0xe1, 0x51, 0xe6, 0x8c, 0xb6, 0xc2, 0x90, 0x17, 0xf0, 0xbc, 0xe4, 0x63, 0x12, 0x90, 0xaf, 0x5e, 0xa5, 0xe2, 0xbf, 0x3e, 0xd7, 0x42, 0xae, 0x11, 0x0b, 0x04, 0xad, 0xe8, 0x3a, 0x5d, 0xbd, 0x73, 0x58, 0xf2, 0x9a, 0x85, 0x93, 0x8e, 0x23, 0xd8, 0x7a, 0xc8, 0x23, 0x30, 0x72, 0xb7, 0x9c, 0x94, 0x67, 0x0f, 0xf0, 0x95, 0x9f, 0x9c, 0x7f, 0x45, 0x17, 0x86, 0x2f, 0xf8, 0x29, 0x45, 0x20, 0x96, 0xc7, 0x8f, 0x5f, 0x2e, 0x9a, 0x7e, 0x4e, 0x92, 0x16, }, - { 0x91, 0x57, 0xdb, 0xfc, 0xf8, 0xcf, 0x38, 0x5f, 0x5b, 0xb1, 0x56, 0x8a, 0xd5, 0xc6, 0xe2, 0xa8,0x65, 0x2b, 0xa6, 0xdf, 0xc6, 0x3b, 0xc1, 0x75, 0x3e, 0xdf, 0x52, 0x68, 0xcb, 0x7e, 0xb5, 0x96, }, - { 0x97, 0x25, 0x70, 0xf4, 0x31, 0x3d, 0x47, 0xfc, 0x96, 0xf7, 0xc0, 0x2d, 0x55, 0x94, 0xd7, 0x7d,0x46, 0xf9, 0x1e, 0x94, 0x98, 0x08, 0x82, 0x5b, 0x3d, 0x31, 0xf0, 0x29, 0xe8, 0x29, 0x64, 0x05, }, - { 0xdf, 0xae, 0xa6, 0xf2, 0x97, 0xfa, 0x32, 0x0b, 0x70, 0x78, 0x66, 0x12, 0x5c, 0x2a, 0x7d, 0x5d,0x51, 0x5b, 0x51, 0xa5, 0x03, 0xbe, 0xe8, 0x17, 0xde, 0x9f, 0xaa, 0x34, 0x3c, 0xc4, 0x8e, 0xeb, }, - { 0x8f, 0x78, 0x0a, 0xd7, 0x13, 0xf9, 0xc3, 0xe5, 0xa4, 0xf7, 0xfa, 0x4c, 0x51, 0x98, 0x33, 0xdf,0xef, 0xc6, 0xa7, 0x43, 0x23, 0x89, 0xb1, 0xe4, 0xaf, 0x46, 0x39, 0x61, 0xf0, 0x97, 0x64, 0xf2, }, + { 0x0a, 0x3a, 0x12, 0xc3, 0x08, 0x4c, 0x86, 0x5d, 0xaf, 0x1d, 0x30, 0x2c, 0x78, 0x21, 0x5d, 0x39,0xbf, 0xe0, 0xb8, 0xbf, 0x28, 0x27, 0x2b, 0x3c, 0x0b, 0x74, 0xbe, 0xb4, 0xb7, 0x40, 0x9d, 0xb0, 0x71, 0x82, 0x39, 0xde, 0x70, 0x07, 0x85, 0x58, 0x15, 0x14, 0x32, 0x1c, 0x64, 0x40, 0xa4, 0xbb, 0xae, 0xa4, 0xc7, 0x6f, 0xa4, 0x74, 0x01, 0xe1, 0x51, 0xe6, 0x8c, 0xb6, 0xc2, 0x90, 0x17, 0xf0, 0xbc, 0xe4, 0x63, 0x12, 0x90, 0xaf, 0x5e, 0xa5, 0xe2, 0xbf, 0x3e, 0xd7, 0x42, 0xae, 0x11, 0x0b, 0x04, 0xad, 0xe8, 0x3a, 0x5d, 0xbd, 0x73, 0x58, 0xf2, 0x9a, 0x85, 0x93, 0x8e, 0x23, 0xd8, 0x7a, 0xc8, 0x23, 0x30, 0x72, 0xb7, 0x9c, 0x94, 0x67, 0x0f, 0xf0, 0x95, 0x9f, 0x9c, 0x7f, 0x45, 0x17, 0x86, 0x2f, 0xf8, 0x29, 0x45, 0x20, 0x96, 0xc7, 0x8f, 0x5f, 0x2e, 0x9a, 0x7e, 0x4e, 0x92, 0x16, }, + { 0x91, 0x57, 0xdb, 0xfc, 0xf8, 0xcf, 0x38, 0x5f, 0x5b, 0xb1, 0x56, 0x8a, 0xd5, 0xc6, 0xe2, 0xa8,0x65, 0x2b, 0xa6, 0xdf, 0xc6, 0x3b, 0xc1, 0x75, 0x3e, 0xdf, 0x52, 0x68, 0xcb, 0x7e, 0xb5, 0x96, }, + { 0x97, 0x25, 0x70, 0xf4, 0x31, 0x3d, 0x47, 0xfc, 0x96, 0xf7, 0xc0, 0x2d, 0x55, 0x94, 0xd7, 0x7d,0x46, 0xf9, 0x1e, 0x94, 0x98, 0x08, 0x82, 0x5b, 0x3d, 0x31, 0xf0, 0x29, 0xe8, 0x29, 0x64, 0x05, }, + { 0xdf, 0xae, 0xa6, 0xf2, 0x97, 0xfa, 0x32, 0x0b, 0x70, 0x78, 0x66, 0x12, 0x5c, 0x2a, 0x7d, 0x5d,0x51, 0x5b, 0x51, 0xa5, 0x03, 0xbe, 0xe8, 0x17, 0xde, 0x9f, 0xaa, 0x34, 0x3c, 0xc4, 0x8e, 0xeb, }, + { 0x8f, 0x78, 0x0a, 0xd7, 0x13, 0xf9, 0xc3, 0xe5, 0xa4, 0xf7, 0xfa, 0x4c, 0x51, 0x98, 0x33, 0xdf,0xef, 0xc6, 0xa7, 0x43, 0x23, 0x89, 0xb1, 0xe4, 0xaf, 0x46, 0x39, 0x61, 0xf0, 0x97, 0x64, 0xf2, }, false, "1 - Message changed" }, { - { 0x78, 0x5d, 0x07, 0xa3, 0xc5, 0x4f, 0x63, 0xdc, 0xa1, 0x1f, 0x5d, 0x1a, 0x5f, 0x49, 0x6e, 0xe2,0xc2, 0xf9, 0x28, 0x8e, 0x55, 0x00, 0x7e, 0x66, 0x6c, 0x78, 0xb0, 0x07, 0xd9, 0x5c, 0xc2, 0x85, 0x81, 0xdc, 0xe5, 0x1f, 0x49, 0x0b, 0x30, 0xfa, 0x73, 0xdc, 0x9e, 0x2d, 0x45, 0xd0, 0x75, 0xd7, 0xe3, 0xa9, 0x5f, 0xb8, 0xa9, 0xe1, 0x46, 0x5a, 0xd1, 0x91, 0x90, 0x41, 0x24, 0x16, 0x0b, 0x7c, 0x60, 0xfa, 0x72, 0x0e, 0xf4, 0xef, 0x1c, 0x5d, 0x29, 0x98, 0xf4, 0x05, 0x70, 0xae, 0x2a, 0x87, 0x0e, 0xf3, 0xe8, 0x94, 0xc2, 0xbc, 0x61, 0x7d, 0x8a, 0x1d, 0xc8, 0x5c, 0x3c, 0x55, 0x77, 0x49, 0x28, 0xc3, 0x87, 0x89, 0xb4, 0xe6, 0x61, 0x34, 0x9d, 0x3f, 0x84, 0xd2, 0x44, 0x1a, 0x3b, 0x85, 0x6a, 0x76, 0x94, 0x9b, 0x9f, 0x1f, 0x80, 0xbc, 0x16, 0x16, 0x48, 0xa1, 0xca, 0xd5, 0x58, 0x8e, }, - { 0x07, 0x2b, 0x10, 0xc0, 0x81, 0xa4, 0xc1, 0x71, 0x3a, 0x29, 0x4f, 0x24, 0x8a, 0xef, 0x85, 0x0e,0x29, 0x79, 0x91, 0xac, 0xa4, 0x7f, 0xa9, 0x6a, 0x74, 0x70, 0xab, 0xe3, 0xb8, 0xac, 0xfd, 0xda, }, - { 0x95, 0x81, 0x14, 0x5c, 0xca, 0x04, 0xa0, 0xfb, 0x94, 0xce, 0xdc, 0xe7, 0x52, 0xc8, 0xf0, 0x37,0x08, 0x61, 0x91, 0x6d, 0x2a, 0x94, 0xe7, 0xc6, 0x47, 0xc5, 0x37, 0x3c, 0xe6, 0xa4, 0xc8, 0xf5, }, - { 0x09, 0xf5, 0x48, 0x3e, 0xcc, 0xec, 0x80, 0xf9, 0xd1, 0x04, 0x81, 0x5a, 0x1b, 0xe9, 0xcc, 0x1a,0x8e, 0x5b, 0x12, 0xb6, 0xeb, 0x48, 0x2a, 0x65, 0xc6, 0x90, 0x7b, 0x74, 0x80, 0xcf, 0x4f, 0x19, }, - { 0xa4, 0xf9, 0x0e, 0x56, 0x0c, 0x5e, 0x4e, 0xb8, 0x69, 0x6c, 0xb2, 0x76, 0xe5, 0x16, 0x5b, 0x6a,0x9d, 0x48, 0x63, 0x45, 0xde, 0xdf, 0xb0, 0x94, 0xa7, 0x6e, 0x84, 0x42, 0xd0, 0x26, 0x37, 0x8d, }, + { 0x78, 0x5d, 0x07, 0xa3, 0xc5, 0x4f, 0x63, 0xdc, 0xa1, 0x1f, 0x5d, 0x1a, 0x5f, 0x49, 0x6e, 0xe2,0xc2, 0xf9, 0x28, 0x8e, 0x55, 0x00, 0x7e, 0x66, 0x6c, 0x78, 0xb0, 0x07, 0xd9, 0x5c, 0xc2, 0x85, 0x81, 0xdc, 0xe5, 0x1f, 0x49, 0x0b, 0x30, 0xfa, 0x73, 0xdc, 0x9e, 0x2d, 0x45, 0xd0, 0x75, 0xd7, 0xe3, 0xa9, 0x5f, 0xb8, 0xa9, 0xe1, 0x46, 0x5a, 0xd1, 0x91, 0x90, 0x41, 0x24, 0x16, 0x0b, 0x7c, 0x60, 0xfa, 0x72, 0x0e, 0xf4, 0xef, 0x1c, 0x5d, 0x29, 0x98, 0xf4, 0x05, 0x70, 0xae, 0x2a, 0x87, 0x0e, 0xf3, 0xe8, 0x94, 0xc2, 0xbc, 0x61, 0x7d, 0x8a, 0x1d, 0xc8, 0x5c, 0x3c, 0x55, 0x77, 0x49, 0x28, 0xc3, 0x87, 0x89, 0xb4, 0xe6, 0x61, 0x34, 0x9d, 0x3f, 0x84, 0xd2, 0x44, 0x1a, 0x3b, 0x85, 0x6a, 0x76, 0x94, 0x9b, 0x9f, 0x1f, 0x80, 0xbc, 0x16, 0x16, 0x48, 0xa1, 0xca, 0xd5, 0x58, 0x8e, }, + { 0x07, 0x2b, 0x10, 0xc0, 0x81, 0xa4, 0xc1, 0x71, 0x3a, 0x29, 0x4f, 0x24, 0x8a, 0xef, 0x85, 0x0e,0x29, 0x79, 0x91, 0xac, 0xa4, 0x7f, 0xa9, 0x6a, 0x74, 0x70, 0xab, 0xe3, 0xb8, 0xac, 0xfd, 0xda, }, + { 0x95, 0x81, 0x14, 0x5c, 0xca, 0x04, 0xa0, 0xfb, 0x94, 0xce, 0xdc, 0xe7, 0x52, 0xc8, 0xf0, 0x37,0x08, 0x61, 0x91, 0x6d, 0x2a, 0x94, 0xe7, 0xc6, 0x47, 0xc5, 0x37, 0x3c, 0xe6, 0xa4, 0xc8, 0xf5, }, + { 0x09, 0xf5, 0x48, 0x3e, 0xcc, 0xec, 0x80, 0xf9, 0xd1, 0x04, 0x81, 0x5a, 0x1b, 0xe9, 0xcc, 0x1a,0x8e, 0x5b, 0x12, 0xb6, 0xeb, 0x48, 0x2a, 0x65, 0xc6, 0x90, 0x7b, 0x74, 0x80, 0xcf, 0x4f, 0x19, }, + { 0xa4, 0xf9, 0x0e, 0x56, 0x0c, 0x5e, 0x4e, 0xb8, 0x69, 0x6c, 0xb2, 0x76, 0xe5, 0x16, 0x5b, 0x6a,0x9d, 0x48, 0x63, 0x45, 0xde, 0xdf, 0xb0, 0x94, 0xa7, 0x6e, 0x84, 0x42, 0xd0, 0x26, 0x37, 0x8d, }, false, "4 - Q changed" }, { - { 0x76, 0xf9, 0x87, 0xec, 0x54, 0x48, 0xdd, 0x72, 0x21, 0x9b, 0xd3, 0x0b, 0xf6, 0xb6, 0x6b, 0x07,0x75, 0xc8, 0x0b, 0x39, 0x48, 0x51, 0xa4, 0x3f, 0xf1, 0xf5, 0x37, 0xf1, 0x40, 0xa6, 0xe7, 0x22, 0x9e, 0xf8, 0xcd, 0x72, 0xad, 0x58, 0xb1, 0xd2, 0xd2, 0x02, 0x98, 0x53, 0x9d, 0x63, 0x47, 0xdd, 0x55, 0x98, 0x81, 0x2b, 0xc6, 0x53, 0x23, 0xac, 0xea, 0xf0, 0x52, 0x28, 0xf7, 0x38, 0xb5, 0xad, 0x3e, 0x8d, 0x9f, 0xe4, 0x10, 0x0f, 0xd7, 0x67, 0xc2, 0xf0, 0x98, 0xc7, 0x7c, 0xb9, 0x9c, 0x29, 0x92, 0x84, 0x3b, 0xa3, 0xee, 0xd9, 0x1d, 0x32, 0x44, 0x4f, 0x3b, 0x6d, 0xb6, 0xcd, 0x21, 0x2d, 0xd4, 0xe5, 0x60, 0x95, 0x48, 0xf4, 0xbb, 0x62, 0x81, 0x2a, 0x92, 0x0f, 0x6e, 0x2b, 0xf1, 0x58, 0x1b, 0xe1, 0xeb, 0xee, 0xbd, 0xd0, 0x6e, 0xc4, 0xe9, 0x71, 0x86, 0x2c, 0xc4, 0x20, 0x55, 0xca, }, - { 0x09, 0x30, 0x8e, 0xa5, 0xbf, 0xad, 0x6e, 0x5a, 0xdf, 0x40, 0x86, 0x34, 0xb3, 0xd5, 0xce, 0x92,0x40, 0xd3, 0x54, 0x42, 0xf7, 0xfe, 0x11, 0x64, 0x52, 0xaa, 0xec, 0x0d, 0x25, 0xbe, 0x8c, 0x24, }, - { 0xf4, 0x0c, 0x93, 0xe0, 0x23, 0xef, 0x49, 0x4b, 0x1c, 0x30, 0x79, 0xb2, 0xd1, 0x0e, 0xf6, 0x7f,0x31, 0x70, 0x74, 0x04, 0x95, 0xce, 0x2c, 0xc5, 0x7f, 0x8e, 0xe4, 0xb0, 0x61, 0x8b, 0x8e, 0xe5, }, - { 0x5c, 0xc8, 0xaa, 0x7c, 0x35, 0x74, 0x3e, 0xc0, 0xc2, 0x3d, 0xde, 0x88, 0xda, 0xbd, 0x5e, 0x4f,0xcd, 0x01, 0x92, 0xd2, 0x11, 0x6f, 0x69, 0x26, 0xfe, 0xf7, 0x88, 0xcd, 0xdb, 0x75, 0x4e, 0x73, }, - { 0x9c, 0x9c, 0x04, 0x5e, 0xba, 0xa1, 0xb8, 0x28, 0xc3, 0x2f, 0x82, 0xac, 0xe0, 0xd1, 0x8d, 0xae,0xbf, 0x5e, 0x15, 0x6e, 0xb7, 0xcb, 0xfd, 0xc1, 0xef, 0xf4, 0x39, 0x9a, 0x8a, 0x90, 0x0a, 0xe7, }, + { 0x76, 0xf9, 0x87, 0xec, 0x54, 0x48, 0xdd, 0x72, 0x21, 0x9b, 0xd3, 0x0b, 0xf6, 0xb6, 0x6b, 0x07,0x75, 0xc8, 0x0b, 0x39, 0x48, 0x51, 0xa4, 0x3f, 0xf1, 0xf5, 0x37, 0xf1, 0x40, 0xa6, 0xe7, 0x22, 0x9e, 0xf8, 0xcd, 0x72, 0xad, 0x58, 0xb1, 0xd2, 0xd2, 0x02, 0x98, 0x53, 0x9d, 0x63, 0x47, 0xdd, 0x55, 0x98, 0x81, 0x2b, 0xc6, 0x53, 0x23, 0xac, 0xea, 0xf0, 0x52, 0x28, 0xf7, 0x38, 0xb5, 0xad, 0x3e, 0x8d, 0x9f, 0xe4, 0x10, 0x0f, 0xd7, 0x67, 0xc2, 0xf0, 0x98, 0xc7, 0x7c, 0xb9, 0x9c, 0x29, 0x92, 0x84, 0x3b, 0xa3, 0xee, 0xd9, 0x1d, 0x32, 0x44, 0x4f, 0x3b, 0x6d, 0xb6, 0xcd, 0x21, 0x2d, 0xd4, 0xe5, 0x60, 0x95, 0x48, 0xf4, 0xbb, 0x62, 0x81, 0x2a, 0x92, 0x0f, 0x6e, 0x2b, 0xf1, 0x58, 0x1b, 0xe1, 0xeb, 0xee, 0xbd, 0xd0, 0x6e, 0xc4, 0xe9, 0x71, 0x86, 0x2c, 0xc4, 0x20, 0x55, 0xca, }, + { 0x09, 0x30, 0x8e, 0xa5, 0xbf, 0xad, 0x6e, 0x5a, 0xdf, 0x40, 0x86, 0x34, 0xb3, 0xd5, 0xce, 0x92,0x40, 0xd3, 0x54, 0x42, 0xf7, 0xfe, 0x11, 0x64, 0x52, 0xaa, 0xec, 0x0d, 0x25, 0xbe, 0x8c, 0x24, }, + { 0xf4, 0x0c, 0x93, 0xe0, 0x23, 0xef, 0x49, 0x4b, 0x1c, 0x30, 0x79, 0xb2, 0xd1, 0x0e, 0xf6, 0x7f,0x31, 0x70, 0x74, 0x04, 0x95, 0xce, 0x2c, 0xc5, 0x7f, 0x8e, 0xe4, 0xb0, 0x61, 0x8b, 0x8e, 0xe5, }, + { 0x5c, 0xc8, 0xaa, 0x7c, 0x35, 0x74, 0x3e, 0xc0, 0xc2, 0x3d, 0xde, 0x88, 0xda, 0xbd, 0x5e, 0x4f,0xcd, 0x01, 0x92, 0xd2, 0x11, 0x6f, 0x69, 0x26, 0xfe, 0xf7, 0x88, 0xcd, 0xdb, 0x75, 0x4e, 0x73, }, + { 0x9c, 0x9c, 0x04, 0x5e, 0xba, 0xa1, 0xb8, 0x28, 0xc3, 0x2f, 0x82, 0xac, 0xe0, 0xd1, 0x8d, 0xae,0xbf, 0x5e, 0x15, 0x6e, 0xb7, 0xcb, 0xfd, 0xc1, 0xef, 0xf4, 0x39, 0x9a, 0x8a, 0x90, 0x0a, 0xe7, }, false, "1 - Message changed" }, { - { 0x60, 0xcd, 0x64, 0xb2, 0xcd, 0x2b, 0xe6, 0xc3, 0x38, 0x59, 0xb9, 0x48, 0x75, 0x12, 0x03, 0x61,0xa2, 0x40, 0x85, 0xf3, 0x76, 0x5c, 0xb8, 0xb2, 0xbf, 0x11, 0xe0, 0x26, 0xfa, 0x9d, 0x88, 0x55, 0xdb, 0xe4, 0x35, 0xac, 0xf7, 0x88, 0x2e, 0x84, 0xf3, 0xc7, 0x85, 0x7f, 0x96, 0xe2, 0xba, 0xab, 0x4d, 0x9a, 0xfe, 0x45, 0x88, 0xe4, 0xa8, 0x2e, 0x17, 0xa7, 0x88, 0x27, 0xbf, 0xdb, 0x5d, 0xdb, 0xd1, 0xc2, 0x11, 0xfb, 0xc2, 0xe6, 0xd8, 0x84, 0xcd, 0xdd, 0x7c, 0xb9, 0xd9, 0x0d, 0x5b, 0xf4, 0xa7, 0x31, 0x1b, 0x83, 0xf3, 0x52, 0x50, 0x80, 0x33, 0x81, 0x2c, 0x77, 0x6a, 0x0e, 0x00, 0xc0, 0x03, 0xc7, 0xe0, 0xd6, 0x28, 0xe5, 0x07, 0x36, 0xc7, 0x51, 0x2d, 0xf0, 0xac, 0xfa, 0x9f, 0x23, 0x20, 0xbd, 0x10, 0x22, 0x29, 0xf4, 0x64, 0x95, 0xae, 0x6d, 0x08, 0x57, 0xcc, 0x45, 0x2a, 0x84, }, - { 0x2d, 0x98, 0xea, 0x01, 0xf7, 0x54, 0xd3, 0x4b, 0xbc, 0x30, 0x03, 0xdf, 0x50, 0x50, 0x20, 0x0a,0xbf, 0x44, 0x5e, 0xc7, 0x28, 0x55, 0x6d, 0x7e, 0xd7, 0xd5, 0xc5, 0x4c, 0x55, 0x55, 0x2b, 0x6d, }, - { 0x9b, 0x52, 0x67, 0x27, 0x42, 0xd6, 0x37, 0xa3, 0x2a, 0xdd, 0x05, 0x6d, 0xfd, 0x6d, 0x87, 0x92,0xf2, 0xa3, 0x3c, 0x2e, 0x69, 0xda, 0xfa, 0xbe, 0xa0, 0x9b, 0x96, 0x0b, 0xc6, 0x1e, 0x23, 0x0a, }, - { 0x06, 0x10, 0x8e, 0x52, 0x5f, 0x84, 0x5d, 0x01, 0x55, 0xbf, 0x60, 0x19, 0x32, 0x22, 0xb3, 0x21,0x9c, 0x98, 0xe3, 0xd4, 0x94, 0x24, 0xc2, 0xfb, 0x2a, 0x09, 0x87, 0xf8, 0x25, 0xc1, 0x79, 0x59, }, - { 0x62, 0xb5, 0xcd, 0xd5, 0x91, 0xe5, 0xb5, 0x07, 0xe5, 0x60, 0x16, 0x7b, 0xa8, 0xf6, 0xf7, 0xcd,0xa7, 0x46, 0x73, 0xeb, 0x31, 0x56, 0x80, 0xcb, 0x89, 0xcc, 0xbc, 0x4e, 0xec, 0x47, 0x7d, 0xce, }, + { 0x60, 0xcd, 0x64, 0xb2, 0xcd, 0x2b, 0xe6, 0xc3, 0x38, 0x59, 0xb9, 0x48, 0x75, 0x12, 0x03, 0x61,0xa2, 0x40, 0x85, 0xf3, 0x76, 0x5c, 0xb8, 0xb2, 0xbf, 0x11, 0xe0, 0x26, 0xfa, 0x9d, 0x88, 0x55, 0xdb, 0xe4, 0x35, 0xac, 0xf7, 0x88, 0x2e, 0x84, 0xf3, 0xc7, 0x85, 0x7f, 0x96, 0xe2, 0xba, 0xab, 0x4d, 0x9a, 0xfe, 0x45, 0x88, 0xe4, 0xa8, 0x2e, 0x17, 0xa7, 0x88, 0x27, 0xbf, 0xdb, 0x5d, 0xdb, 0xd1, 0xc2, 0x11, 0xfb, 0xc2, 0xe6, 0xd8, 0x84, 0xcd, 0xdd, 0x7c, 0xb9, 0xd9, 0x0d, 0x5b, 0xf4, 0xa7, 0x31, 0x1b, 0x83, 0xf3, 0x52, 0x50, 0x80, 0x33, 0x81, 0x2c, 0x77, 0x6a, 0x0e, 0x00, 0xc0, 0x03, 0xc7, 0xe0, 0xd6, 0x28, 0xe5, 0x07, 0x36, 0xc7, 0x51, 0x2d, 0xf0, 0xac, 0xfa, 0x9f, 0x23, 0x20, 0xbd, 0x10, 0x22, 0x29, 0xf4, 0x64, 0x95, 0xae, 0x6d, 0x08, 0x57, 0xcc, 0x45, 0x2a, 0x84, }, + { 0x2d, 0x98, 0xea, 0x01, 0xf7, 0x54, 0xd3, 0x4b, 0xbc, 0x30, 0x03, 0xdf, 0x50, 0x50, 0x20, 0x0a,0xbf, 0x44, 0x5e, 0xc7, 0x28, 0x55, 0x6d, 0x7e, 0xd7, 0xd5, 0xc5, 0x4c, 0x55, 0x55, 0x2b, 0x6d, }, + { 0x9b, 0x52, 0x67, 0x27, 0x42, 0xd6, 0x37, 0xa3, 0x2a, 0xdd, 0x05, 0x6d, 0xfd, 0x6d, 0x87, 0x92,0xf2, 0xa3, 0x3c, 0x2e, 0x69, 0xda, 0xfa, 0xbe, 0xa0, 0x9b, 0x96, 0x0b, 0xc6, 0x1e, 0x23, 0x0a, }, + { 0x06, 0x10, 0x8e, 0x52, 0x5f, 0x84, 0x5d, 0x01, 0x55, 0xbf, 0x60, 0x19, 0x32, 0x22, 0xb3, 0x21,0x9c, 0x98, 0xe3, 0xd4, 0x94, 0x24, 0xc2, 0xfb, 0x2a, 0x09, 0x87, 0xf8, 0x25, 0xc1, 0x79, 0x59, }, + { 0x62, 0xb5, 0xcd, 0xd5, 0x91, 0xe5, 0xb5, 0x07, 0xe5, 0x60, 0x16, 0x7b, 0xa8, 0xf6, 0xf7, 0xcd,0xa7, 0x46, 0x73, 0xeb, 0x31, 0x56, 0x80, 0xcb, 0x89, 0xcc, 0xbc, 0x4e, 0xec, 0x47, 0x7d, 0xce, }, true, "P" } }; - const size_t ecdsa_p256_test_vectors_count = sizeof(ecdsa_p256_test_vectors) / sizeof(ecdsa_p256_test_vector); +#endif + +#if TEST_VECTOR_EC_P384_EN +#ifdef ATCA_TA100_SUPPORT +const ecdsa_p384_test_vector ecdsa_p384_s256_test_vectors[] = { + { + { 0xa4, 0x44, 0x21, 0x6c, 0x90, 0x72, 0xca, 0xf8, 0x7f, 0xa5, 0x7c, 0x1f, 0x4, 0xaf, 0xf9, 0xcb, 0x83, 0xdc, 0x2e, 0xde, 0x99, 0x68, 0xbd, 0xa4, 0x1c, 0x9d, 0x91, 0x88, 0x25, 0xe5, 0x26, 0xc2, 0x39, 0x7c, 0xb7, 0xd7, 0x71, 0xa7, 0xe1, 0x20, 0x58, 0x24, 0x24, 0xbb, 0xea, 0x8e, 0xcd, 0x56, 0xa6, 0x9b, 0xb4, 0x68, 0xcd, 0x61, 0x43, 0x7f, 0x5a, 0x65, 0xf0, 0x49, 0x53, 0xf9, 0xd4, 0x1, 0x8c, 0x59, 0x9a, 0xfd, 0x9e, 0xdb, 0xd4, 0xd2, 0x6e, 0x86, 0x1f, 0x86, 0x82, 0x9b, 0x94, 0x96, 0xf8, 0x29, 0xf2, 0xb6, 0x1, 0xdf, 0x73, 0xe9, 0x31, 0xff, 0xf9, 0x65, 0x59, 0xe0, 0x91, 0x41, 0x7c, 0xd, 0x8b, 0x8c, 0x81, 0x29, 0x44, 0x3f, 0x7e, 0xfb, 0x98, 0x5d, 0x28, 0x6c, 0x71, 0x67, 0xb6, 0x6d, 0x2b, 0x4d, 0x59, 0x3, 0x58, 0x3a, 0x92, 0x8d, 0xb3, 0xed, 0x6a, 0x88, 0x31, 0x17}, + { 0x97, 0xc3, 0xf4, 0x46, 0x80, 0x3a, 0x61, 0xa7, 0x1, 0x4f, 0x61, 0xcb, 0x7f, 0x8b, 0x3f, 0x36, 0x48, 0x6c, 0x7e, 0xa9, 0x6d, 0x90, 0xee, 0x17, 0x67, 0xf5, 0xc7, 0xe1, 0xd8, 0x96, 0xdd, 0x51, 0x14, 0x25, 0x5a, 0xbb, 0x36, 0xc7, 0x4b, 0xe2, 0x18, 0xc1, 0xf0, 0xa4, 0xe7, 0xeb, 0xba, 0x3d}, + { 0x55, 0x3e, 0xd1, 0xfe, 0xd7, 0x2c, 0x62, 0x85, 0x1e, 0x4, 0x2f, 0x1, 0x71, 0x45, 0x4f, 0x12, 0x0, 0x29, 0xad, 0xba, 0x4e, 0xe2, 0x68, 0x55, 0xab, 0x88, 0x1d, 0x94, 0x70, 0x35, 0x5f, 0x19, 0x47, 0xaa, 0x1d, 0x2e, 0x80, 0x6a, 0x7f, 0xf2, 0x58, 0x36, 0x60, 0xfe, 0xdb, 0xd0, 0x37, 0xa0}, + { 0x7b, 0x6, 0xd6, 0xc2, 0xb6, 0x3f, 0x1c, 0xc3, 0xbf, 0xda, 0xa8, 0x97, 0xd0, 0x7d, 0xc1, 0x5a, 0x83, 0xbd, 0xf3, 0x5d, 0x97, 0x9f, 0x70, 0xc3, 0x45, 0x78, 0x33, 0x2b, 0x3f, 0x49, 0x20, 0x42, 0x2b, 0xb2, 0x48, 0x67, 0xc5, 0x1b, 0xde, 0x10, 0x83, 0x13, 0x24, 0xdf, 0x42, 0x4e, 0x4, 0xec}, + { 0x4b, 0xef, 0x71, 0x51, 0x61, 0xf4, 0x0, 0xdc, 0x98, 0xd4, 0xb6, 0x3b, 0xd1, 0x3f, 0xf4, 0xad, 0x4a, 0x6c, 0x98, 0x1e, 0xad, 0x44, 0xbf, 0xc6, 0x62, 0xfe, 0x9b, 0xca, 0x4b, 0x56, 0xcd, 0x79, 0x6, 0x98, 0xe4, 0xde, 0xdd, 0xf9, 0xa4, 0xbd, 0x69, 0x32, 0x7f, 0x26, 0xbf, 0xe8, 0x1, 0xe6}, + false, + "4 - Q changed" + }, + { + { 0x43, 0xc5, 0xff, 0xcd, 0xf6, 0xf9, 0xe2, 0x1a, 0xba, 0x1b, 0x6, 0x55, 0x96, 0x74, 0x5e, 0x87, 0x38, 0xf7, 0xb3, 0x9e, 0x1d, 0xb4, 0x86, 0xa6, 0xae, 0x52, 0x21, 0x8d, 0x66, 0xce, 0x81, 0x25, 0xfd, 0xb1, 0x55, 0xee, 0x28, 0x1e, 0x1, 0xb2, 0x7f, 0xa2, 0xd, 0xe, 0x37, 0xd6, 0x46, 0x8a, 0x2d, 0xae, 0xdc, 0x5f, 0xd3, 0x5, 0x73, 0xe4, 0x4b, 0x25, 0x6c, 0x5a, 0xf1, 0x3d, 0xf2, 0x7d, 0xea, 0x56, 0xfd, 0x81, 0xae, 0xf6, 0x89, 0xaa, 0xd7, 0xc0, 0x22, 0xce, 0xa7, 0x7a, 0xc3, 0xc4, 0xa, 0x1d, 0x64, 0xb8, 0xc0, 0xcf, 0x7f, 0xb5, 0xa1, 0x28, 0xd6, 0xa1, 0x79, 0x9d, 0xa7, 0xb8, 0xd9, 0x53, 0x8, 0x61, 0x3c, 0xeb, 0x22, 0x60, 0xe1, 0xb, 0x37, 0x53, 0xe, 0xdd, 0x42, 0x92, 0x5f, 0xa5, 0xab, 0xcd, 0xad, 0x5d, 0x6, 0x46, 0xba, 0x5b, 0xc7, 0x8c, 0x33, 0x3, 0x46, 0xeb}, + { 0x8, 0xbd, 0x5c, 0x6c, 0xdc, 0x1f, 0x8c, 0x61, 0x1d, 0xf9, 0x64, 0x85, 0x9, 0xe, 0x20, 0xe9, 0x18, 0x8d, 0xf6, 0xab, 0xb7, 0x66, 0xbf, 0xf3, 0xc1, 0xba, 0x34, 0x1e, 0xd2, 0x9, 0xad, 0x5d, 0xfd, 0x78, 0xb6, 0x28, 0xec, 0x60, 0x99, 0x8d, 0xdf, 0xdd, 0xd, 0xd0, 0x29, 0x35, 0x2f, 0xbd}, + { 0xd9, 0x83, 0x1d, 0x75, 0xde, 0xc7, 0x60, 0xe9, 0xf4, 0x5, 0xd1, 0xaa, 0x5e, 0x23, 0xaa, 0xc5, 0x6, 0xdc, 0x1, 0x9f, 0xb6, 0x4d, 0x44, 0xbd, 0x57, 0xf6, 0xc5, 0x70, 0xd0, 0x17, 0xe6, 0x60, 0x9f, 0x8f, 0xdb, 0xb2, 0xdc, 0x7b, 0x28, 0xca, 0x9e, 0x0, 0xe3, 0x7c, 0xd3, 0x2a, 0x3b, 0x73}, + { 0x8b, 0x37, 0x2c, 0x86, 0xed, 0x1e, 0xec, 0x21, 0x63, 0xd6, 0xf7, 0x15, 0x2e, 0x53, 0x69, 0x6b, 0x4a, 0x10, 0x95, 0x89, 0x48, 0xd8, 0x63, 0xeb, 0x62, 0x28, 0x73, 0xb4, 0x71, 0x70, 0x2a, 0xc5, 0xb2, 0xe7, 0x5f, 0xf8, 0x52, 0x14, 0x9a, 0x49, 0x9e, 0x61, 0x51, 0x9, 0x5, 0xf9, 0x8e, 0x4c}, + { 0xb2, 0xed, 0x72, 0x8e, 0x8b, 0x30, 0x78, 0x7a, 0x28, 0xf2, 0xa6, 0xd3, 0x74, 0x8, 0x72, 0xe4, 0x73, 0x48, 0x68, 0x6c, 0x7c, 0xb4, 0x26, 0x41, 0x13, 0x79, 0x41, 0x13, 0x10, 0x24, 0x1d, 0x25, 0xf0, 0x8a, 0x2, 0x6b, 0x85, 0x37, 0x89, 0xb1, 0x15, 0x7f, 0x1f, 0xc1, 0xa7, 0xf6, 0xff, 0x49}, + false, + "1 - Message changed" + }, + { + { 0x5e, 0xdd, 0x32, 0x58, 0x85, 0x29, 0x6a, 0x82, 0x9b, 0x50, 0xb1, 0x6b, 0x17, 0xe3, 0xc4, 0xfc, 0x34, 0x91, 0xf1, 0xd5, 0x33, 0x84, 0x10, 0x3f, 0x1c, 0x9, 0xa2, 0x1a, 0x16, 0x93, 0x29, 0xe0, 0x7b, 0x37, 0x58, 0xd5, 0x5c, 0x52, 0xe9, 0xd5, 0x78, 0xfb, 0x9e, 0x35, 0xe8, 0x75, 0x4b, 0xfa, 0xb9, 0xfa, 0x5e, 0x31, 0x9d, 0xc, 0x7f, 0xdb, 0x45, 0x44, 0x4e, 0xda, 0x6a, 0x2a, 0xa, 0x9a, 0xae, 0xaa, 0x9b, 0x77, 0x2, 0xcc, 0xe7, 0x42, 0x4, 0x71, 0x46, 0x22, 0x8f, 0x9f, 0x68, 0x7e, 0x76, 0x84, 0xd9, 0xb4, 0xaa, 0xa3, 0xbe, 0x3, 0x81, 0x3c, 0x0, 0x4f, 0x4, 0x18, 0xc1, 0xa2, 0xfe, 0x3a, 0xa8, 0xdd, 0xb3, 0x65, 0x81, 0x37, 0xd7, 0xe9, 0x54, 0xe3, 0x68, 0x3a, 0x8, 0xe0, 0xea, 0xad, 0x26, 0xc0, 0xcc, 0x3a, 0xe0, 0x3, 0x1b, 0x19, 0x19, 0x9, 0xa3, 0xeb, 0xad, 0xe5}, + { 0x10, 0xa7, 0x84, 0xab, 0xb3, 0xc5, 0x49, 0x44, 0x4a, 0x62, 0xc2, 0x8d, 0xf1, 0xc9, 0x26, 0xb8, 0xaa, 0xbb, 0x20, 0xc8, 0xd9, 0xaa, 0x4b, 0x1f, 0x7c, 0xa8, 0x30, 0x25, 0x88, 0x57, 0xcb, 0xe9, 0x71, 0x8d, 0xbc, 0x98, 0x45, 0xfa, 0x9c, 0xbb, 0x78, 0x58, 0x7a, 0x37, 0x3b, 0xae, 0xe8, 0xd}, + { 0xa1, 0xad, 0xc, 0x10, 0xb5, 0xab, 0x67, 0x80, 0xca, 0xd4, 0x9c, 0x8c, 0xd3, 0xee, 0xbd, 0x27, 0xde, 0x8f, 0x1b, 0x38, 0x2d, 0xdd, 0x7a, 0x60, 0x44, 0x58, 0xce, 0xf8, 0xe7, 0x6c, 0xa6, 0x32, 0xa7, 0xe4, 0x4e, 0x1c, 0x63, 0x14, 0x1a, 0x74, 0x24, 0x26, 0xce, 0xc5, 0x98, 0x2, 0x9e, 0x2e}, + { 0xd9, 0xe5, 0x2b, 0xe2, 0xa3, 0xf7, 0xf5, 0x66, 0x89, 0x9c, 0xf6, 0xda, 0xaa, 0x38, 0x11, 0x6d, 0x9, 0x24, 0x73, 0x6, 0x6f, 0x3a, 0x1b, 0xf9, 0x1f, 0x3d, 0xf4, 0x4d, 0x81, 0xbc, 0xa1, 0xde, 0xb4, 0x38, 0xd9, 0xd2, 0x5c, 0xe1, 0x63, 0x25, 0x99, 0xc1, 0xd3, 0x57, 0x6a, 0x30, 0xf1, 0x28}, + { 0xc, 0xad, 0x30, 0xbc, 0xe4, 0xb3, 0xd7, 0xf4, 0xb, 0x3e, 0xef, 0x76, 0x2a, 0x21, 0xbb, 0x1a, 0x3b, 0xad, 0x77, 0x43, 0x98, 0x38, 0xb1, 0x30, 0x24, 0xb7, 0xb2, 0xc7, 0x3, 0x16, 0x87, 0x5a, 0x99, 0xe8, 0x7, 0x23, 0xa7, 0x4a, 0x9e, 0x7a, 0x40, 0x47, 0x15, 0xca, 0x6, 0xa5, 0xd6, 0x73}, + false, + "3 - S changed" + }, + { + { 0x4f, 0xb7, 0x3e, 0x9e, 0x8c, 0xbc, 0x3e, 0x82, 0x9f, 0x99, 0x47, 0x26, 0x71, 0xee, 0x87, 0x19, 0xf7, 0x96, 0xdb, 0xed, 0x9, 0x6b, 0x3c, 0xbd, 0xf1, 0x8, 0xa, 0xd7, 0xf5, 0xc4, 0x10, 0xa4, 0x54, 0x1e, 0x35, 0x26, 0xde, 0x81, 0x6f, 0xe3, 0x5a, 0xb9, 0xe6, 0x64, 0xbb, 0x1c, 0x1d, 0x1e, 0x9a, 0xdd, 0x25, 0x22, 0xb9, 0xa9, 0x1e, 0xb4, 0x61, 0xb4, 0x5a, 0xe4, 0x42, 0x6e, 0x1d, 0xfb, 0xab, 0x7d, 0xad, 0x3, 0xa1, 0x39, 0x27, 0x6, 0xb9, 0x31, 0x4c, 0x3, 0x10, 0x4e, 0xa7, 0xb4, 0xf, 0x36, 0x32, 0x57, 0x7b, 0xb, 0x7c, 0x99, 0x1d, 0x2b, 0x92, 0x46, 0x6, 0x38, 0x70, 0x75, 0x72, 0xb3, 0x38, 0x7a, 0xdd, 0x6a, 0xb0, 0xf0, 0x5f, 0x6f, 0x55, 0x3f, 0xa1, 0xfc, 0xc5, 0xf, 0xef, 0xe7, 0x47, 0x83, 0xcd, 0x8b, 0x78, 0x1a, 0x35, 0xde, 0x5a, 0xe0, 0xe7, 0xfc, 0x5a, 0x58}, + { 0x87, 0x60, 0x18, 0x23, 0x93, 0x13, 0x2d, 0x69, 0x1, 0x1e, 0xdf, 0xa1, 0x27, 0xe3, 0x6f, 0x92, 0xee, 0xac, 0x82, 0x72, 0x64, 0x1c, 0x27, 0xf5, 0x2f, 0x33, 0x37, 0xef, 0x8a, 0xf7, 0x45, 0x1e, 0x6d, 0x14, 0xf4, 0xe4, 0x59, 0xc, 0x7e, 0xb9, 0xfa, 0xfb, 0x76, 0xe8, 0xc9, 0x28, 0x65, 0xcf}, + { 0xeb, 0xc2, 0xb1, 0x23, 0xed, 0x87, 0x1c, 0xa5, 0x70, 0xea, 0xd4, 0xa, 0xe8, 0xf6, 0xf3, 0x23, 0x35, 0x39, 0x3c, 0x56, 0x9b, 0x21, 0xb3, 0x8f, 0x62, 0x6d, 0x9, 0xc0, 0x64, 0xa3, 0xc8, 0x66, 0x8e, 0x9f, 0xb1, 0xa, 0x46, 0x67, 0xe0, 0xf0, 0xc6, 0x8b, 0xf2, 0x5c, 0xa9, 0x8f, 0xd6, 0xdc}, + { 0x1d, 0xb9, 0x57, 0xe5, 0xc2, 0xd2, 0x94, 0x3, 0x5d, 0x7f, 0x47, 0x6a, 0xc, 0xbc, 0x28, 0xa4, 0xaa, 0xc2, 0x61, 0x4d, 0x82, 0x12, 0xde, 0x50, 0x17, 0x7, 0x6c, 0xd8, 0x36, 0xbf, 0x4, 0xff, 0xe2, 0x37, 0xdc, 0xe8, 0xfe, 0xc9, 0x1f, 0x2f, 0xb5, 0xef, 0x82, 0x44, 0x9f, 0xf1, 0xc6, 0x5d}, + { 0x3e, 0x3b, 0x90, 0x58, 0xd0, 0xa9, 0xc5, 0xb4, 0x17, 0xf9, 0xc6, 0xf8, 0x65, 0x57, 0xb9, 0xd5, 0xe, 0x7a, 0x90, 0x26, 0x94, 0xa7, 0x1, 0x2a, 0x1b, 0xe6, 0xbb, 0x70, 0x70, 0x84, 0x97, 0xe4, 0xd3, 0x9f, 0xc1, 0xf6, 0xd6, 0xbc, 0x60, 0xdf, 0xa5, 0x2d, 0x23, 0xca, 0xb1, 0x73, 0x38, 0x5f}, + false, + "4 - Q changed" + }, + { + { 0xb6, 0x6c, 0xa1, 0xd7, 0x7a, 0xdf, 0x6b, 0x2b, 0x20, 0xc6, 0xef, 0x68, 0xe5, 0xd, 0x35, 0x3a, 0x9f, 0x5c, 0xd0, 0xbe, 0x42, 0x2f, 0x5f, 0x6f, 0xff, 0x8f, 0x74, 0x50, 0x62, 0x80, 0xa5, 0x5d, 0x79, 0x23, 0xcf, 0x4, 0x7d, 0xfd, 0xb9, 0x14, 0x7b, 0x91, 0x6f, 0x6d, 0xf6, 0xca, 0xd8, 0xc5, 0x22, 0x57, 0x36, 0xf, 0x74, 0x6b, 0x77, 0xed, 0xb9, 0x94, 0x9e, 0xd4, 0xae, 0x9a, 0x63, 0xd0, 0x8a, 0x7d, 0xa0, 0x7c, 0x4c, 0xf3, 0x28, 0x36, 0x57, 0x4a, 0x34, 0xf3, 0x16, 0x29, 0x2b, 0x8c, 0xc5, 0xa6, 0xb0, 0x57, 0x12, 0x9a, 0x6b, 0xaa, 0x11, 0x82, 0xbe, 0x8a, 0x5b, 0xe1, 0xc4, 0x37, 0x39, 0xe7, 0xd9, 0xb0, 0xab, 0xe0, 0x78, 0x1, 0xc2, 0xd4, 0x34, 0x3a, 0x23, 0x50, 0x37, 0xb9, 0xaa, 0xff, 0x14, 0x69, 0x4c, 0x5, 0x1f, 0xde, 0x4b, 0x54, 0x59, 0x31, 0xff, 0x9e, 0x9a, 0x3b}, + { 0x2b, 0x1f, 0x98, 0xd2, 0xac, 0xdd, 0xa8, 0x34, 0x7b, 0x9a, 0x68, 0xc7, 0x51, 0x74, 0x40, 0x8e, 0xae, 0x7d, 0xe3, 0xd6, 0xb9, 0xc0, 0x8c, 0x26, 0xe7, 0x3c, 0xe9, 0xed, 0x2a, 0xc1, 0x47, 0xb8, 0xd9, 0xc, 0xd8, 0x2e, 0x30, 0xab, 0x43, 0x90, 0x9d, 0x63, 0xf6, 0xb4, 0x57, 0xde, 0x20, 0x71}, + { 0x33, 0xf5, 0xe6, 0xf5, 0xf5, 0x79, 0x32, 0x1, 0x99, 0x1e, 0x1, 0x4c, 0xce, 0x0, 0x45, 0xd0, 0x4a, 0xdc, 0x35, 0x22, 0x98, 0xe3, 0x2f, 0x45, 0xf4, 0xe3, 0x74, 0x45, 0x1, 0x11, 0xc8, 0x45, 0x6b, 0x5c, 0x2e, 0xfa, 0xec, 0x43, 0xd1, 0x57, 0x94, 0x9b, 0x5c, 0x19, 0x1b, 0x2b, 0xc9, 0x34}, + { 0x23, 0xd0, 0x46, 0x40, 0x2c, 0xbc, 0xe8, 0x7, 0xd2, 0x32, 0xbc, 0xf0, 0xdc, 0x96, 0xd5, 0x3c, 0x72, 0x99, 0x2e, 0xb, 0xa1, 0xff, 0xce, 0xd, 0x79, 0x5, 0xc, 0xf, 0x4c, 0x5a, 0xd9, 0xbf, 0xbb, 0xdc, 0x1c, 0x96, 0xc7, 0x30, 0xd6, 0x7f, 0xf3, 0xaa, 0x3e, 0xda, 0xa3, 0x84, 0x5d, 0xa9}, + { 0x2c, 0xd4, 0x6a, 0x4f, 0xe5, 0xd1, 0x20, 0xb3, 0xaf, 0x3a, 0x6d, 0x9e, 0xa6, 0x3c, 0xc7, 0x8f, 0x40, 0x79, 0xe8, 0xb5, 0x52, 0xa, 0x8f, 0xa9, 0x68, 0x28, 0x33, 0x4a, 0x4f, 0x18, 0x2f, 0xf4, 0xd5, 0xe3, 0xd7, 0x94, 0x70, 0x1, 0x9e, 0x4e, 0xb8, 0xaf, 0xc4, 0xf5, 0x98, 0xb6, 0xbe, 0xcb}, + false, + "4 - Q changed" + }, + { + { 0x86, 0x2c, 0xf1, 0x4c, 0x65, 0xff, 0x85, 0xf4, 0xfd, 0xd8, 0xa3, 0x93, 0x2, 0x5, 0x63, 0x55, 0xc8, 0x9c, 0x6e, 0xa1, 0x78, 0x9c, 0x5, 0x62, 0x62, 0xb0, 0x77, 0xda, 0xb3, 0x3a, 0xbb, 0xfd, 0xa0, 0x7, 0xf, 0xce, 0x18, 0x8c, 0x63, 0x30, 0xde, 0x84, 0xdf, 0xc5, 0x12, 0x74, 0x4e, 0x9f, 0xa0, 0xf7, 0xb0, 0x3c, 0xe0, 0xc1, 0x48, 0x58, 0xdb, 0x19, 0x52, 0x75, 0xd, 0x7b, 0xbe, 0x6b, 0xd9, 0xc8, 0x72, 0x6c, 0xe, 0xae, 0x61, 0xe6, 0xcf, 0x28, 0x77, 0xc6, 0x55, 0xb1, 0xf0, 0xe0, 0xce, 0x82, 0x54, 0x30, 0xa9, 0x79, 0x6e, 0x74, 0x20, 0xe5, 0xc1, 0x74, 0xea, 0xb7, 0xa5, 0x4, 0x59, 0xe2, 0x91, 0x51, 0xb, 0xc5, 0x15, 0x14, 0x17, 0x38, 0x90, 0xd, 0x39, 0x2, 0x17, 0xc5, 0xa5, 0x22, 0xe4, 0xbd, 0xe5, 0x47, 0xe5, 0x72, 0x87, 0xd8, 0x13, 0x9d, 0xc9, 0x16, 0x50, 0x4e}, + { 0x86, 0xac, 0x12, 0xdd, 0xa, 0x7f, 0xe5, 0xb8, 0x1f, 0xda, 0xe8, 0x6b, 0x12, 0x43, 0x5d, 0x31, 0x6e, 0xf9, 0x39, 0x2a, 0x3f, 0x50, 0xb3, 0x7, 0xab, 0x65, 0xd9, 0xc6, 0x7, 0x9d, 0xd0, 0xd2, 0xd8, 0x19, 0xdc, 0x9, 0xe2, 0x28, 0x61, 0x45, 0x9c, 0x2e, 0xd9, 0x9f, 0xba, 0xb6, 0x6f, 0xae}, + { 0xac, 0x84, 0x44, 0x7, 0x7a, 0xae, 0xd6, 0xd6, 0xcc, 0xac, 0xbe, 0x67, 0xa4, 0xca, 0xac, 0xee, 0xb, 0x5a, 0x9, 0x4a, 0x35, 0x75, 0xca, 0x12, 0xea, 0x4b, 0x47, 0x74, 0xc0, 0x30, 0xfe, 0x1c, 0x87, 0xc, 0x92, 0x49, 0x2, 0x3f, 0x5d, 0xc4, 0xd9, 0xad, 0x6e, 0x33, 0x36, 0x68, 0xcc, 0x38}, + { 0x79, 0x80, 0x65, 0xf1, 0xd1, 0xcb, 0xd3, 0xa1, 0x89, 0x77, 0x94, 0xf4, 0xa0, 0x25, 0xed, 0x47, 0x56, 0x5d, 0xf7, 0x73, 0x84, 0x3f, 0x4f, 0xa7, 0x4c, 0x85, 0xfe, 0x4d, 0x30, 0xe3, 0xa3, 0x94, 0x78, 0x3e, 0xc5, 0x72, 0x3b, 0x53, 0xf, 0xc5, 0xf5, 0x79, 0x6, 0xf9, 0x46, 0xce, 0x15, 0xe8}, + { 0xb5, 0x71, 0x66, 0x4, 0x4c, 0x57, 0xc7, 0xd9, 0x58, 0x20, 0x66, 0x80, 0x5b, 0x58, 0x85, 0xab, 0xc0, 0x6e, 0xb, 0xfc, 0x2, 0x43, 0x38, 0x50, 0xc2, 0xb7, 0x49, 0x73, 0x20, 0x5c, 0xa3, 0x57, 0xa2, 0xda, 0x94, 0xa6, 0x51, 0x72, 0x8, 0x6f, 0x5a, 0x15, 0x80, 0xba, 0xa6, 0x97, 0x40, 0xb}, + true, + "P" + }, + { + { 0xcc, 0xa, 0xac, 0x10, 0x10, 0xfa, 0xd8, 0x55, 0x5f, 0x81, 0x42, 0x3a, 0xc2, 0x52, 0x3, 0x72, 0x8, 0x53, 0xdb, 0xe6, 0xa4, 0x65, 0xc2, 0x44, 0x38, 0x8d, 0xf9, 0x8, 0x39, 0x11, 0x3d, 0x59, 0xea, 0x3d, 0x35, 0x21, 0xa8, 0xa9, 0xcb, 0xef, 0x64, 0x9f, 0x8a, 0xbe, 0x8d, 0x6f, 0xf8, 0xb0, 0xcf, 0x17, 0xff, 0xc1, 0x99, 0xdd, 0xdb, 0x29, 0x97, 0x51, 0x1c, 0x4b, 0x50, 0xe9, 0x44, 0xd4, 0x1c, 0xbc, 0xdf, 0x5d, 0x21, 0x2, 0xdc, 0x98, 0xd6, 0xf9, 0x35, 0x5b, 0x21, 0x1f, 0x13, 0xd, 0x4e, 0x89, 0x98, 0x3f, 0x63, 0xe5, 0xdf, 0xe6, 0xe1, 0xb4, 0xff, 0xb3, 0xca, 0xab, 0xd1, 0xad, 0x96, 0x56, 0x3f, 0xb5, 0xc0, 0xe5, 0x90, 0x5d, 0xcb, 0x73, 0x8a, 0x59, 0xec, 0x2e, 0x5d, 0x47, 0x68, 0x47, 0x7, 0x19, 0x1f, 0xf3, 0x27, 0x46, 0xa0, 0xcb, 0xc6, 0x5b, 0x2, 0xbe, 0x78, 0x41}, + { 0x9e, 0x75, 0x53, 0xea, 0xb8, 0xcc, 0x7e, 0x2e, 0x73, 0x96, 0x12, 0x8f, 0x42, 0xab, 0x26, 0xc, 0x6d, 0xbb, 0x54, 0x57, 0xcb, 0xff, 0x20, 0x70, 0xea, 0x7c, 0xd, 0xb2, 0x1d, 0xef, 0x15, 0x37, 0x93, 0x9e, 0x3f, 0x2, 0x69, 0x9e, 0x5d, 0xd4, 0x60, 0xec, 0xa3, 0x79, 0x8d, 0x8, 0xbd, 0x6d}, + { 0x89, 0x2c, 0xc, 0x8e, 0x47, 0xdd, 0xdf, 0x85, 0x8e, 0x89, 0x9, 0x9a, 0x8f, 0xc1, 0x2, 0x6e, 0x8b, 0x83, 0x33, 0x53, 0x2b, 0x22, 0xf5, 0x61, 0xf7, 0x64, 0x7f, 0x63, 0xf9, 0xc7, 0x9d, 0xbf, 0x5e, 0x8d, 0xd1, 0x8f, 0xbf, 0xe6, 0xff, 0x34, 0x90, 0x22, 0x33, 0x11, 0x9c, 0x5d, 0x5a, 0xa3}, + { 0x24, 0x52, 0xda, 0x6a, 0x48, 0xc3, 0x74, 0x9b, 0x66, 0xe5, 0x76, 0xe0, 0xf1, 0xf7, 0x68, 0xd5, 0x17, 0x28, 0xbe, 0x17, 0xae, 0xa1, 0x49, 0x16, 0x4c, 0x4e, 0x16, 0x54, 0xc5, 0xce, 0x27, 0xf6, 0x25, 0xa4, 0x61, 0xc, 0x4a, 0x2e, 0xed, 0xdb, 0x3a, 0x6, 0x26, 0xd3, 0xab, 0xc6, 0xc3, 0x7c}, + { 0x49, 0x95, 0x4, 0xfb, 0x58, 0xc9, 0xdb, 0x24, 0xa7, 0xff, 0x5f, 0x79, 0x21, 0xe1, 0x31, 0x2f, 0x8a, 0xa5, 0x83, 0xc0, 0x8a, 0x30, 0x8e, 0x8, 0xf, 0x5e, 0xf1, 0xac, 0xf5, 0xcd, 0xae, 0x79, 0x27, 0xc4, 0x10, 0x15, 0x73, 0xdb, 0x6, 0x9a, 0xb0, 0xb6, 0xde, 0x7f, 0x4f, 0x1c, 0xab, 0x38}, + false, + "1 - Message changed" + }, + { + { 0xb9, 0xd8, 0xd5, 0xd4, 0x7e, 0xda, 0xa2, 0xdc, 0xa7, 0xd7, 0xd6, 0x87, 0xf9, 0x82, 0x64, 0xb6, 0xe2, 0x1a, 0x8e, 0x1e, 0xeb, 0x20, 0x8, 0x3e, 0xfe, 0xdb, 0x71, 0xc1, 0x16, 0xd1, 0x31, 0x50, 0xd9, 0x5f, 0x62, 0xa3, 0x69, 0xa7, 0x9f, 0xf, 0x45, 0x23, 0x3d, 0x27, 0x51, 0xa4, 0xb3, 0x64, 0x32, 0xc7, 0xc1, 0x2e, 0x19, 0xc8, 0xbe, 0xf3, 0x75, 0x68, 0xfa, 0x1a, 0x34, 0x79, 0x29, 0x39, 0x8b, 0x7e, 0xe6, 0x90, 0x46, 0xe1, 0x19, 0x11, 0xe3, 0xdb, 0x47, 0x2c, 0x3b, 0xcc, 0xbd, 0x68, 0x65, 0x3d, 0x99, 0xe4, 0x61, 0xb4, 0xe5, 0xcf, 0xa6, 0x17, 0xf9, 0x4d, 0x59, 0x79, 0x8f, 0x33, 0x3c, 0xcf, 0x13, 0xab, 0xf4, 0x26, 0xca, 0x8b, 0xe0, 0xf6, 0x58, 0x7a, 0x45, 0x36, 0x32, 0xa5, 0xc, 0x15, 0x9d, 0x96, 0x69, 0x5a, 0xd0, 0x3d, 0xba, 0xac, 0x71, 0x6e, 0x81, 0x1a, 0x35, 0x86}, + { 0xc, 0xf4, 0xdc, 0x51, 0xe7, 0x11, 0x85, 0xa2, 0x9c, 0xc, 0x6f, 0xa3, 0xc0, 0x75, 0xd9, 0xda, 0x5b, 0xd7, 0xed, 0xe0, 0x85, 0x5, 0x33, 0x44, 0xdc, 0xe5, 0xdb, 0xbe, 0x83, 0x29, 0xe8, 0xac, 0x90, 0x45, 0xf7, 0x24, 0x6c, 0x9d, 0xe, 0xfe, 0xd3, 0x93, 0xb8, 0xe1, 0x13, 0xc7, 0x14, 0x29}, + { 0xfd, 0xb7, 0x91, 0x7b, 0x73, 0x97, 0x4b, 0x35, 0x5c, 0xf9, 0xf3, 0xbe, 0xf6, 0xa0, 0xa4, 0x60, 0xc2, 0xd3, 0x9f, 0xdf, 0x1f, 0xe3, 0x2a, 0x77, 0x44, 0xbe, 0xa, 0x54, 0xdd, 0xd1, 0xcf, 0xa8, 0xd0, 0x39, 0x14, 0xcf, 0xf4, 0xb5, 0xca, 0x53, 0x6b, 0x40, 0x70, 0x7f, 0xf2, 0x62, 0x9a, 0xa4}, + { 0x38, 0x12, 0xc2, 0xdc, 0x28, 0x81, 0xd7, 0xef, 0x7f, 0x62, 0x19, 0x93, 0xb1, 0x61, 0x67, 0x23, 0x29, 0xb2, 0x61, 0xff, 0x10, 0xb, 0xbd, 0x19, 0xfb, 0x58, 0x26, 0xc9, 0xfa, 0xce, 0x9, 0xae, 0xc2, 0x1, 0x7b, 0x68, 0x43, 0xd6, 0x93, 0x36, 0xb8, 0x13, 0xb6, 0x73, 0xc5, 0x40, 0x25, 0x27}, + { 0x5d, 0xc1, 0x2, 0xfa, 0xb9, 0xd6, 0x32, 0x51, 0x31, 0xc5, 0x56, 0xec, 0x0, 0x30, 0x9c, 0x29, 0x59, 0xd1, 0x3, 0x1a, 0x63, 0xfb, 0xc1, 0xe2, 0xd5, 0xd0, 0x49, 0x96, 0xd3, 0x23, 0x4e, 0xd3, 0x38, 0x75, 0xc0, 0xab, 0x98, 0xe5, 0x87, 0x8e, 0x9b, 0xc7, 0x27, 0x42, 0x51, 0x9e, 0xd3, 0x98}, + false, + "2 - R changed" + }, + { + { 0x6d, 0x9c, 0xf3, 0xd, 0x59, 0xcc, 0x9d, 0x6e, 0x56, 0xe, 0x9c, 0x52, 0xf8, 0xbe, 0x32, 0x5d, 0x19, 0xeb, 0x3c, 0xea, 0x59, 0x2e, 0x43, 0xbd, 0x95, 0x84, 0x41, 0x1d, 0x76, 0x6, 0x47, 0x29, 0xc0, 0x3a, 0xd5, 0x4f, 0xeb, 0x4d, 0xce, 0x43, 0x5f, 0xb6, 0x62, 0xff, 0x6, 0x9c, 0xa3, 0xe1, 0x9b, 0xd1, 0x6c, 0x31, 0x25, 0x67, 0xf0, 0x50, 0x18, 0xfe, 0xb8, 0xf9, 0x13, 0xca, 0xf7, 0x55, 0x3a, 0xc7, 0x28, 0xac, 0x78, 0x7e, 0xa3, 0xca, 0x7, 0x3a, 0x32, 0x86, 0x33, 0x44, 0x1d, 0x7c, 0x5c, 0xc4, 0xd3, 0xe, 0xc1, 0x94, 0xf2, 0x48, 0xc0, 0x70, 0x11, 0x19, 0xf7, 0xdd, 0x80, 0xc9, 0x9e, 0x44, 0xf4, 0x69, 0xf3, 0x7c, 0xc6, 0x72, 0x66, 0x1, 0xc9, 0x7e, 0x7d, 0x94, 0xdc, 0x8e, 0x54, 0x92, 0x61, 0xb4, 0x6d, 0x21, 0x9a, 0x7e, 0xa3, 0x6b, 0xee, 0x65, 0xc, 0xcd, 0x15, 0xcf}, + { 0x6c, 0x59, 0x4, 0x34, 0x98, 0x81, 0x55, 0x23, 0x6b, 0x43, 0x14, 0x73, 0x89, 0xc6, 0xdb, 0xfd, 0xd2, 0x7d, 0xcd, 0x33, 0x87, 0xe9, 0xb4, 0xc2, 0x58, 0x7e, 0xce, 0x67, 0x7, 0x53, 0xa5, 0x42, 0xa1, 0x3a, 0x73, 0x65, 0x79, 0x88, 0x77, 0x91, 0xcf, 0x53, 0xd3, 0x1e, 0x5c, 0xe9, 0x99, 0x94}, + { 0x35, 0xa2, 0x1, 0x94, 0xff, 0x3f, 0x1b, 0x55, 0xf7, 0xff, 0xb2, 0x75, 0x8d, 0xdd, 0x4b, 0x98, 0xdd, 0xd, 0x9e, 0xc, 0xc2, 0x13, 0xe1, 0xe, 0xd2, 0x5e, 0x8e, 0x4, 0x30, 0xfe, 0x86, 0x10, 0x66, 0xc1, 0xd4, 0x42, 0x3c, 0x67, 0xf0, 0xc9, 0x3f, 0x7e, 0xbd, 0x87, 0xfd, 0x3c, 0x56, 0x1e}, + { 0x89, 0xff, 0x86, 0x68, 0x89, 0x24, 0x5e, 0x79, 0x79, 0x26, 0x50, 0x9e, 0x56, 0x3b, 0x17, 0x46, 0x92, 0xb, 0x78, 0xc9, 0x37, 0xa, 0x6c, 0xda, 0xe5, 0x26, 0x63, 0x73, 0xd, 0x13, 0x1e, 0x55, 0x8e, 0x32, 0x7d, 0x1f, 0x5f, 0xef, 0x8f, 0xaf, 0x9e, 0x6c, 0x80, 0x2f, 0xa2, 0x95, 0x4, 0xed}, + { 0x8d, 0xd6, 0x8e, 0x2d, 0xe2, 0xf7, 0x88, 0xe5, 0x98, 0xb3, 0xe5, 0xa6, 0xc, 0x18, 0xd8, 0x18, 0x49, 0xa0, 0xcc, 0x14, 0xb3, 0xb0, 0xe3, 0xc9, 0x31, 0x91, 0x6, 0x39, 0xf3, 0x12, 0x5e, 0x5d, 0x60, 0x45, 0xf0, 0x3, 0x30, 0xb1, 0xfa, 0x98, 0x92, 0x52, 0xa8, 0xf, 0x95, 0x41, 0x9b, 0x4}, + false, + "2 - R changed" + }, + { + { 0x2d, 0xe0, 0xc0, 0x67, 0x12, 0x13, 0xbd, 0x43, 0x26, 0xff, 0xa5, 0xa1, 0x7, 0xc, 0xa6, 0x5, 0x73, 0x39, 0x61, 0xb1, 0x1e, 0x9f, 0x93, 0x9f, 0x80, 0x5d, 0x2d, 0x69, 0x74, 0xd5, 0x28, 0x6e, 0x1b, 0x1c, 0x0, 0xad, 0xac, 0x36, 0xf, 0x32, 0xbd, 0x58, 0x43, 0x26, 0x29, 0xf8, 0xc9, 0x32, 0xe2, 0x41, 0xff, 0xaa, 0xe7, 0x42, 0xc9, 0x33, 0x6f, 0x4c, 0x95, 0x78, 0x2d, 0x4b, 0x73, 0x25, 0x5c, 0xac, 0x6, 0x44, 0xc8, 0xc2, 0xd7, 0x9, 0x9c, 0x2b, 0xa1, 0xfd, 0xc, 0xf4, 0x24, 0x33, 0x44, 0xdd, 0x8d, 0xc0, 0xf7, 0x70, 0x4, 0x73, 0xf, 0x50, 0x78, 0x47, 0x99, 0x55, 0xc3, 0x85, 0x95, 0x9e, 0x6, 0x30, 0x3e, 0xf2, 0xfd, 0xa8, 0xdf, 0x81, 0xe7, 0x23, 0x72, 0x51, 0xe3, 0xe8, 0x4a, 0x3, 0x51, 0x55, 0x5, 0xe4, 0x48, 0xaa, 0x13, 0x30, 0xa9, 0xa1, 0xcd, 0x48, 0x22, 0xa5}, + { 0x49, 0x9c, 0xbd, 0xf1, 0x8e, 0xc4, 0xe6, 0x9b, 0x88, 0x5, 0x15, 0x43, 0xc7, 0xda, 0x80, 0x84, 0x5f, 0xa2, 0xde, 0x8b, 0xe2, 0xb9, 0xd9, 0x4, 0x5f, 0xee, 0x7f, 0x10, 0x4a, 0x8b, 0x5b, 0x7d, 0x4, 0xe6, 0x91, 0x42, 0xde, 0x99, 0x55, 0xc5, 0xab, 0x18, 0xc5, 0xa3, 0x4e, 0xbf, 0xf0, 0x75}, + { 0xa2, 0x9c, 0xb8, 0xd2, 0x88, 0x36, 0xb2, 0x1, 0xa3, 0x89, 0x92, 0x2b, 0x6f, 0x8f, 0x93, 0x87, 0xf, 0x9, 0xc8, 0xa, 0x0, 0x24, 0x2d, 0x0, 0xd3, 0x26, 0x56, 0xa4, 0x3a, 0xc1, 0x44, 0xf, 0xc5, 0x5b, 0xcb, 0x12, 0x35, 0x51, 0xa7, 0x32, 0x90, 0xf6, 0x3, 0xc3, 0x46, 0x9b, 0xe9, 0xed}, + { 0x25, 0xd4, 0xd2, 0x43, 0xda, 0x6f, 0xd9, 0xb4, 0x39, 0xa9, 0x24, 0x2c, 0x36, 0x56, 0xfa, 0xde, 0x7a, 0xcb, 0x7a, 0x30, 0x6e, 0x8c, 0xf2, 0x3e, 0xa8, 0x9e, 0x3f, 0xf4, 0xf9, 0x33, 0xb, 0xe1, 0x9c, 0x61, 0xaa, 0xa4, 0x2d, 0x7b, 0x42, 0x6d, 0x12, 0xc8, 0xe0, 0xf9, 0x6b, 0x80, 0xda, 0xe5}, + { 0xe7, 0xa9, 0x9c, 0xf4, 0xb2, 0x69, 0xbb, 0x4a, 0x62, 0x10, 0xd1, 0x85, 0xe9, 0x65, 0x46, 0x2, 0x52, 0x3b, 0x5c, 0xfa, 0x1c, 0xdd, 0xc9, 0x4b, 0x1d, 0xb9, 0x20, 0x18, 0xaa, 0x55, 0x7e, 0xcb, 0x6a, 0xdd, 0xa4, 0x4c, 0x81, 0x69, 0x75, 0xf5, 0xec, 0x17, 0x56, 0xb6, 0xdf, 0x3c, 0x44, 0xfd}, + false, + "3 - S changed" + }, + { + { 0x69, 0xde, 0x70, 0xed, 0xec, 0x50, 0x1, 0xb0, 0xf6, 0x9e, 0xe0, 0xb0, 0xf1, 0xda, 0xb6, 0xfb, 0x22, 0xa9, 0x30, 0xde, 0xe9, 0xa1, 0x23, 0x73, 0xfe, 0x67, 0x1f, 0x9a, 0x5c, 0x68, 0x4, 0xee, 0x1c, 0xd0, 0x27, 0x87, 0x28, 0x67, 0xc9, 0xa4, 0xe0, 0xbd, 0xfe, 0xd5, 0x23, 0xeb, 0x14, 0x60, 0xc, 0xfe, 0xd6, 0x4f, 0xca, 0x41, 0x51, 0x88, 0xd5, 0x6e, 0xb6, 0x51, 0xd3, 0x17, 0x31, 0xcd, 0x3e, 0xe, 0xfe, 0xc7, 0x25, 0x1c, 0x7d, 0xef, 0xde, 0x92, 0x2c, 0xf4, 0x35, 0xba, 0x41, 0x45, 0x4a, 0x58, 0xd2, 0xab, 0xf5, 0xf2, 0x9c, 0xe5, 0xb4, 0x18, 0xa8, 0x36, 0xca, 0xb1, 0x67, 0x1d, 0x8c, 0xdc, 0x60, 0xaa, 0x23, 0x9a, 0x17, 0xa4, 0x20, 0x72, 0x13, 0x7c, 0xfd, 0xc0, 0x62, 0x87, 0x15, 0xc0, 0x6b, 0x19, 0xa2, 0xea, 0x2e, 0x55, 0x0, 0x57, 0x1, 0xc2, 0x20, 0xc0, 0x92, 0x4f}, + { 0x9a, 0x74, 0xea, 0x0, 0x20, 0x3c, 0x57, 0x1b, 0xd9, 0x1a, 0xe8, 0x73, 0xce, 0xe, 0xd5, 0x17, 0xf8, 0xf0, 0xa9, 0x29, 0xc1, 0x85, 0x4d, 0x68, 0xab, 0xd3, 0xb8, 0x3a, 0x50, 0x51, 0xc0, 0xb6, 0x86, 0xbb, 0x37, 0xd1, 0x29, 0x58, 0xa5, 0x49, 0x40, 0xcf, 0xa2, 0xde, 0x23, 0x90, 0x2d, 0xa7}, + { 0x6f, 0x20, 0xcc, 0xf8, 0xfa, 0x36, 0xa, 0x9e, 0xc0, 0x3d, 0x7b, 0xb7, 0x9f, 0xf1, 0x7a, 0xd8, 0x85, 0xf7, 0x14, 0x75, 0x7e, 0xf6, 0x29, 0x95, 0xf8, 0x24, 0x90, 0x85, 0x61, 0xdc, 0xc, 0x3d, 0xff, 0xc4, 0x9d, 0x87, 0x36, 0x27, 0x93, 0x6a, 0x2f, 0xff, 0x1, 0x8b, 0x82, 0x87, 0x9c, 0xed}, + { 0xac, 0xc1, 0xfc, 0xac, 0x98, 0xc5, 0x93, 0xfb, 0xa, 0x7, 0x65, 0xfc, 0xe3, 0x5a, 0x60, 0x1c, 0x2e, 0x95, 0x70, 0xd6, 0x3e, 0xa1, 0xe6, 0x12, 0xff, 0xf8, 0xbc, 0x99, 0xac, 0x2d, 0x4d, 0x87, 0x77, 0x50, 0xbb, 0x44, 0xcf, 0xb1, 0x1, 0x4e, 0x52, 0xe0, 0xb, 0x92, 0x35, 0xe3, 0x50, 0xaf}, + { 0x7f, 0x53, 0xde, 0x3a, 0xfa, 0x41, 0x46, 0xb1, 0x44, 0x7e, 0x82, 0x9e, 0xba, 0xc8, 0xf5, 0x64, 0x5e, 0x94, 0x8c, 0xc9, 0x9e, 0x87, 0x1c, 0x7, 0x28, 0xc, 0xc6, 0x31, 0x61, 0x3c, 0xfd, 0xaf, 0x52, 0xcc, 0xae, 0xcc, 0xbe, 0x93, 0x58, 0x8a, 0x3f, 0xd1, 0x21, 0x70, 0xa7, 0xec, 0x79, 0xfa}, + true, + "P" + }, + { + { 0x38, 0x3a, 0xb0, 0x25, 0x11, 0x57, 0xe6, 0x45, 0xe6, 0x78, 0x10, 0xa, 0xd3, 0x43, 0x1b, 0x9a, 0xd9, 0x6c, 0x62, 0x79, 0xe2, 0x37, 0xad, 0xa7, 0x1d, 0x85, 0xdb, 0xc, 0xe3, 0xa9, 0x6f, 0xcd, 0x48, 0x5, 0xb2, 0xe7, 0x67, 0x6e, 0x9a, 0x39, 0x5f, 0x1d, 0x2f, 0x14, 0xf2, 0x45, 0x35, 0xb7, 0x71, 0x60, 0xb2, 0x2d, 0x3d, 0x1c, 0x7d, 0x2e, 0x2, 0xec, 0x4b, 0xbd, 0x82, 0x5, 0x8f, 0x39, 0x7d, 0xb4, 0x68, 0xf4, 0xd9, 0xff, 0xa, 0xb8, 0x30, 0x6f, 0x9b, 0xec, 0xd2, 0x34, 0xf7, 0xa7, 0xb9, 0xc5, 0xa4, 0xed, 0x44, 0xb7, 0x47, 0x49, 0x13, 0xfe, 0x98, 0x4b, 0x5b, 0x9e, 0x99, 0x5f, 0xae, 0x9a, 0x95, 0x1e, 0x6e, 0x8f, 0x29, 0x75, 0xdf, 0x67, 0xa0, 0x18, 0xc, 0xea, 0x81, 0xfd, 0x4c, 0x97, 0xee, 0xa6, 0xa, 0x25, 0xc1, 0x5e, 0x2b, 0xa2, 0x10, 0x92, 0xab, 0xe, 0xeb, 0xd5}, + { 0xe2, 0x2f, 0x22, 0x18, 0x9, 0xfb, 0x7a, 0x5, 0x4a, 0xc7, 0x99, 0xa7, 0xb, 0x3d, 0x24, 0x74, 0x4e, 0xb7, 0xc5, 0x9, 0x6c, 0x86, 0x71, 0x77, 0x3, 0x99, 0x52, 0x7c, 0x88, 0xcc, 0xf9, 0xdd, 0xae, 0xa0, 0x25, 0x7a, 0xa, 0xe9, 0x43, 0xd, 0x92, 0x7f, 0xf5, 0xd9, 0xf1, 0x9, 0xc5, 0x33}, + { 0xaf, 0x41, 0x1, 0xd6, 0xd, 0xf9, 0xb3, 0x6, 0xae, 0x92, 0xda, 0x75, 0x92, 0xf4, 0xfa, 0xf3, 0xdf, 0x42, 0x2a, 0x3e, 0x33, 0xf1, 0xc2, 0xed, 0x29, 0x73, 0xb2, 0xb9, 0x0, 0xee, 0xfc, 0x34, 0x6b, 0x4c, 0xf0, 0x24, 0xde, 0x65, 0xa, 0xbf, 0x53, 0x7c, 0xec, 0xd1, 0x2a, 0xc7, 0x76, 0x18}, + { 0xc3, 0x9a, 0x8e, 0x79, 0xf0, 0x56, 0xb, 0x9f, 0x26, 0x50, 0x44, 0x69, 0xa4, 0x70, 0xc7, 0xb2, 0x23, 0xc, 0xd, 0x25, 0xde, 0x7, 0xc2, 0x6, 0xe8, 0x7d, 0xfb, 0xde, 0x9a, 0xff, 0xa, 0x5d, 0x85, 0x32, 0x2f, 0x56, 0xdf, 0xb5, 0xd, 0x4c, 0x1f, 0xc6, 0x7c, 0x67, 0xd6, 0x15, 0xda, 0xd7}, + { 0x2a, 0xd9, 0x4d, 0xd1, 0x3a, 0x39, 0xcf, 0x4f, 0x4c, 0xb2, 0x4c, 0x2c, 0x81, 0xd4, 0xc1, 0x18, 0x16, 0x52, 0x36, 0x3a, 0xdd, 0xd8, 0x56, 0xdc, 0x9b, 0xa7, 0x45, 0x54, 0x58, 0xe4, 0xe, 0xd0, 0x47, 0xcd, 0x11, 0x31, 0x29, 0xbc, 0x87, 0xf4, 0x39, 0x49, 0xd5, 0xa9, 0x8a, 0xd, 0x52, 0x5}, + false, + "3 - S changed" + }, + { + { 0xb2, 0x3e, 0x83, 0xd3, 0x72, 0x42, 0x2c, 0xad, 0x7b, 0xf6, 0x33, 0xff, 0x84, 0x46, 0x8b, 0x5c, 0xa0, 0xf1, 0x90, 0x2e, 0xea, 0x80, 0x1b, 0xb2, 0xe6, 0xe8, 0x9b, 0x45, 0xd2, 0xf7, 0x5e, 0xf9, 0xe0, 0x8c, 0x47, 0xe0, 0x10, 0xde, 0xcd, 0xd2, 0xcf, 0xbd, 0x92, 0x80, 0xb0, 0x15, 0x11, 0x16, 0x4e, 0x0, 0xbd, 0x83, 0x23, 0xfd, 0x6, 0xa0, 0x19, 0xe8, 0x3d, 0x3d, 0xd2, 0x3c, 0x8a, 0xa0, 0x31, 0x3a, 0xd5, 0x19, 0x69, 0x25, 0xb5, 0xb7, 0xd5, 0xc2, 0x5f, 0xf8, 0xfd, 0x19, 0x8a, 0xc2, 0xa2, 0x34, 0xdb, 0xe0, 0xa1, 0x3f, 0xbd, 0x4, 0xc4, 0x0, 0x2e, 0xa8, 0x98, 0x56, 0xe9, 0x1e, 0x78, 0x9e, 0x7, 0xe2, 0x5d, 0x56, 0x69, 0xe, 0x4, 0x81, 0xcd, 0xb7, 0x76, 0xa3, 0x3, 0x5a, 0x64, 0xf4, 0xbd, 0x57, 0x10, 0x97, 0xef, 0x7, 0xbd, 0x49, 0x99, 0x4f, 0x95, 0xd8, 0x32, 0x3f}, + { 0xfa, 0x8e, 0xbc, 0x36, 0x82, 0xd9, 0xa, 0xc7, 0x35, 0x6f, 0xb, 0x75, 0xb9, 0xe3, 0x37, 0x6e, 0x76, 0x51, 0x86, 0x76, 0xe0, 0xbe, 0xdd, 0x17, 0x6c, 0xfa, 0x7f, 0xa5, 0x7f, 0xea, 0x4b, 0x3a, 0x39, 0x9d, 0xbb, 0x2b, 0xf7, 0x35, 0xec, 0x90, 0xb9, 0xc1, 0x70, 0x5c, 0xf9, 0xfa, 0x6f, 0x57}, + { 0x18, 0xc3, 0xfb, 0xca, 0x1, 0x50, 0xec, 0x10, 0x69, 0x6b, 0x38, 0x51, 0xf3, 0x1f, 0xb3, 0xba, 0x62, 0xc0, 0xb6, 0xbe, 0x50, 0x9d, 0x24, 0x9e, 0xd, 0x4b, 0x37, 0x4c, 0x7a, 0x8, 0xe4, 0x93, 0x38, 0xe0, 0x92, 0x2e, 0x2a, 0x8a, 0x93, 0x19, 0x99, 0x9e, 0x65, 0x69, 0xab, 0x8d, 0x29, 0x2e}, + { 0xfb, 0x58, 0xab, 0x9, 0xb8, 0xa7, 0xef, 0x7a, 0x6e, 0xc0, 0x5b, 0x85, 0x4e, 0xae, 0x11, 0xaf, 0x9b, 0x71, 0x3f, 0x7c, 0x75, 0x40, 0xe2, 0x51, 0x15, 0xf6, 0x9, 0x84, 0x6e, 0x63, 0x6a, 0xd4, 0xf8, 0x8d, 0xcf, 0x4d, 0xd6, 0x1e, 0x31, 0x12, 0x73, 0xdf, 0x23, 0xcc, 0xda, 0x47, 0x4f, 0x3}, + { 0x48, 0x5b, 0xe4, 0xc2, 0x1b, 0x7c, 0x3a, 0x9c, 0x6b, 0x39, 0xff, 0xc9, 0xf0, 0xc3, 0x9f, 0x40, 0x50, 0xf7, 0x6d, 0x2a, 0x6b, 0x3f, 0xae, 0x20, 0x3d, 0x1, 0x63, 0x18, 0xc5, 0x41, 0xc1, 0xb4, 0xad, 0x6c, 0xfc, 0xd, 0x9, 0x50, 0x63, 0x6f, 0xf6, 0x88, 0x38, 0x95, 0xdd, 0x49, 0xe4, 0xe9}, + true, + "P" + }, + { + { 0xee, 0xef, 0x70, 0xae, 0x23, 0xd9, 0x53, 0x30, 0xa7, 0x1b, 0xdd, 0xe1, 0xfe, 0xb1, 0x96, 0xd5, 0x99, 0x48, 0x1e, 0x5, 0x7b, 0xdb, 0xd5, 0xef, 0x51, 0x9c, 0xe4, 0x45, 0xa9, 0xb5, 0xac, 0xb4, 0x6e, 0xde, 0x32, 0x5a, 0x9c, 0xaa, 0xd7, 0x20, 0xe4, 0xfc, 0x49, 0xc1, 0x98, 0xff, 0x5f, 0x9, 0x10, 0xc5, 0x6a, 0x6, 0xd0, 0xcf, 0x76, 0xf4, 0x50, 0xda, 0x1a, 0xd3, 0x5f, 0xec, 0xcc, 0xdb, 0x44, 0x42, 0xf6, 0x4d, 0xaa, 0x61, 0x49, 0xee, 0x6b, 0x67, 0xab, 0x13, 0x7, 0xff, 0xb5, 0xc4, 0xb6, 0xca, 0x3e, 0x72, 0xa6, 0x44, 0xd3, 0x6d, 0x9e, 0x71, 0xc4, 0xdd, 0x32, 0x83, 0xd1, 0x20, 0x41, 0xe7, 0x3e, 0x6d, 0x20, 0xec, 0x19, 0xb3, 0xb2, 0x6, 0x54, 0x59, 0x3a, 0x4c, 0xca, 0x4b, 0x2f, 0xd9, 0xaa, 0x12, 0xf1, 0x7d, 0x5b, 0x0, 0xb7, 0xed, 0x43, 0xdf, 0x74, 0x54, 0x80, 0x10}, + { 0xe5, 0xf3, 0x31, 0x53, 0x6a, 0x29, 0x40, 0xcd, 0x67, 0x23, 0x4b, 0xed, 0xf8, 0x13, 0xc1, 0x2e, 0x15, 0xae, 0xfa, 0x9a, 0x1a, 0x68, 0x42, 0x9f, 0x87, 0x54, 0xbf, 0x27, 0x69, 0xa4, 0x7c, 0x9c, 0x2e, 0xfb, 0x5c, 0x42, 0x13, 0x5e, 0x7b, 0x1, 0xa1, 0x10, 0xd7, 0x30, 0x2e, 0x9, 0x7e, 0xac}, + { 0x63, 0xb2, 0x39, 0x86, 0x12, 0xc8, 0x63, 0xfe, 0xbd, 0x48, 0x21, 0x84, 0xe8, 0x34, 0xd3, 0xac, 0xb5, 0x14, 0x8, 0xc4, 0x9a, 0xac, 0xbb, 0xd3, 0x5d, 0x87, 0x19, 0x74, 0x6f, 0x37, 0xcb, 0x13, 0xe0, 0x13, 0xc9, 0x50, 0x5c, 0xe0, 0x34, 0xcd, 0x81, 0x5a, 0xac, 0xd1, 0xd, 0x2f, 0x7a, 0xd}, + { 0x96, 0xc3, 0x5f, 0x22, 0xd0, 0x36, 0x78, 0x5a, 0x39, 0x2d, 0xc6, 0xab, 0xf9, 0xb3, 0xcf, 0xb0, 0xad, 0x37, 0xb5, 0xc5, 0x9c, 0xae, 0xfc, 0xc0, 0xb5, 0x21, 0x2e, 0x94, 0xe8, 0x67, 0x39, 0xa2, 0x67, 0x40, 0x20, 0xff, 0x79, 0x25, 0x80, 0x94, 0xd9, 0xd, 0x7d, 0x59, 0xf0, 0x9d, 0x47, 0xa1}, + { 0x37, 0x3c, 0xbc, 0x86, 0x53, 0x84, 0x73, 0x4c, 0x56, 0x95, 0x2f, 0x7a, 0x35, 0xa1, 0xfd, 0xec, 0xd8, 0x8e, 0x8b, 0x34, 0x3e, 0xe3, 0xaa, 0x7, 0x3d, 0x30, 0xf5, 0xf2, 0x5b, 0x73, 0x50, 0x6f, 0x1e, 0x5f, 0x58, 0x57, 0xf6, 0x68, 0xb0, 0x8, 0xd, 0xec, 0x6e, 0xde, 0xb5, 0xe1, 0xbe, 0x96}, + false, + "1 - Message changed" + }, + { + { 0x78, 0x75, 0x19, 0x4a, 0xc, 0x32, 0x61, 0xcf, 0x41, 0x46, 0x52, 0xcd, 0x99, 0x70, 0x21, 0x9e, 0x3b, 0xf8, 0x18, 0x5a, 0xd9, 0x78, 0xaf, 0xfe, 0xbd, 0x92, 0xff, 0xd4, 0xc, 0x20, 0x9a, 0xd, 0x17, 0xdd, 0xa0, 0xd5, 0xb7, 0x9f, 0xef, 0xae, 0xba, 0x34, 0x0, 0x8, 0x87, 0x20, 0x59, 0x8c, 0xc7, 0x57, 0xae, 0xa1, 0xfb, 0x31, 0xce, 0x97, 0x6f, 0xb9, 0x36, 0x72, 0x6f, 0xd4, 0xb4, 0x8d, 0x39, 0x6a, 0x35, 0xcf, 0x4b, 0x78, 0xd1, 0x6d, 0xdd, 0xa5, 0x60, 0x67, 0xdd, 0xc6, 0x47, 0x28, 0xdc, 0x80, 0xb8, 0x74, 0xc5, 0x28, 0x61, 0x28, 0xb7, 0xb5, 0xda, 0x88, 0x80, 0x8c, 0x7d, 0xf5, 0xc3, 0x32, 0x37, 0x91, 0x72, 0xe, 0x7e, 0xad, 0x8b, 0x50, 0x14, 0x4d, 0xed, 0xc1, 0x55, 0x90, 0x53, 0xb, 0x89, 0xcd, 0x2, 0x2f, 0xd7, 0x29, 0x1c, 0x97, 0xa4, 0xb9, 0x88, 0x9d, 0x5, 0x68}, + { 0xc5, 0x3a, 0xd8, 0x65, 0xbe, 0xb1, 0xe2, 0xb9, 0x27, 0x64, 0x6, 0x5f, 0x1a, 0x6b, 0xb4, 0x65, 0xee, 0x94, 0xaa, 0xca, 0xbe, 0x43, 0x42, 0x6a, 0x93, 0xc2, 0x77, 0xd0, 0x2e, 0x0, 0xfe, 0x36, 0xbe, 0x1c, 0x85, 0x9b, 0xa0, 0x8a, 0x3, 0x1f, 0xc5, 0x18, 0xa0, 0xd0, 0x7, 0x66, 0x89, 0x79}, + { 0x67, 0x28, 0xd4, 0x2b, 0xae, 0x9b, 0xc0, 0x97, 0x15, 0x17, 0x48, 0xff, 0xa0, 0x98, 0x29, 0x64, 0xbd, 0xd1, 0x60, 0x76, 0xfa, 0xe, 0x7c, 0xc1, 0x58, 0x37, 0xc1, 0xf7, 0x73, 0xb0, 0x8d, 0x2, 0xc3, 0xdb, 0xc5, 0x73, 0x39, 0x9, 0x1c, 0xcc, 0x34, 0x10, 0x5b, 0x84, 0x78, 0x11, 0x50, 0xb4}, + { 0xd4, 0xf0, 0xdd, 0x94, 0xfc, 0x3b, 0x65, 0x7d, 0xbd, 0x23, 0x47, 0x67, 0x94, 0x92, 0x7, 0x62, 0x40, 0x82, 0xff, 0x94, 0x6d, 0xe9, 0xce, 0xa, 0xeb, 0xd, 0x99, 0x93, 0xb8, 0xc7, 0xd7, 0x93, 0x57, 0x60, 0xe1, 0xbf, 0x9d, 0x8b, 0x23, 0x3b, 0xc7, 0xd6, 0xcd, 0x34, 0x92, 0x8f, 0x52, 0x18}, + { 0x9, 0x41, 0xdf, 0x5, 0x6, 0x2a, 0xa8, 0x84, 0x96, 0x10, 0xf4, 0xb3, 0x7d, 0x18, 0x4d, 0xb7, 0x7e, 0xd1, 0xbc, 0x19, 0xad, 0x2b, 0xb4, 0x2f, 0x9a, 0x12, 0xc1, 0x23, 0x1, 0x75, 0x92, 0xbf, 0x40, 0x86, 0xbf, 0x42, 0x4b, 0x3c, 0xaa, 0xd9, 0xa4, 0x4, 0xb2, 0x60, 0xa0, 0xf6, 0x9e, 0xfb}, + false, + "2 - R changed" + } +}; +const size_t ecdsa_p384_s256_test_vectors_count = sizeof(ecdsa_p384_s256_test_vectors) / sizeof(ecdsa_p384_test_vector); +#endif +#endif /* TEST_VECTOR_EC_P384_EN */ + +#if TEST_VECTOR_EC_P521_EN +const ecdsa_p521_test_vector ecdsa_p521_test_vectors[] = { + { + { 0xa0, 0x73, 0x2a, 0x60, 0x5c, 0x78, 0x5a, 0x2c, 0xc9, 0xa3, 0xff, 0x84, 0xcb, 0xaf, 0x29, 0x17, 0x50, 0x40, 0xf7, 0xa0, 0xcc, 0x35, 0xf4, 0xea, 0x8e, 0xef, 0xf2, 0x67, 0xc1, 0xf9, 0x2f, 0x6, 0xf4, 0x6d, 0x3b, 0x35, 0x43, 0x71, 0x95, 0x18, 0x5d, 0x32, 0x2c, 0xbd, 0x77, 0x5f, 0xd2, 0x47, 0x41, 0xe8, 0x6e, 0xe9, 0x23, 0x6b, 0xa5, 0xb3, 0x74, 0xa2, 0xac, 0x29, 0x80, 0x35, 0x54, 0xd7, 0x15, 0xfa, 0x46, 0x56, 0xac, 0x31, 0x77, 0x8f, 0x10, 0x3f, 0x88, 0xd6, 0x84, 0x34, 0xdd, 0x20, 0x13, 0xd4, 0xc4, 0xe9, 0x84, 0x8a, 0x11, 0x19, 0x8b, 0x39, 0xc, 0x3d, 0x60, 0xd, 0x71, 0x28, 0x93, 0x51, 0x3e, 0x17, 0x9c, 0xd3, 0xd3, 0x1f, 0xb0, 0x6c, 0x6e, 0x2a, 0x10, 0x16, 0xfb, 0x96, 0xff, 0xd9, 0x70, 0xb1, 0x48, 0x9e, 0x36, 0xa5, 0x56, 0xab, 0x3b, 0x53, 0x7e, 0xb2, 0x9d, 0xff}, + { 0x1, 0x2a, 0x59, 0x3f, 0x56, 0x8c, 0xa2, 0x57, 0x1e, 0x54, 0x3e, 0x0, 0x6, 0x6e, 0xcd, 0x3a, 0x32, 0x72, 0xa5, 0x7e, 0x1c, 0x94, 0xfe, 0x31, 0x1e, 0x5d, 0xf9, 0x6a, 0xfc, 0x1b, 0x79, 0x2e, 0x58, 0x62, 0x72, 0xf, 0xc7, 0x30, 0xe6, 0x20, 0x52, 0xbb, 0xf3, 0xe1, 0x18, 0xd3, 0xa0, 0x78, 0xf0, 0x14, 0x4f, 0xc0, 0xc, 0x9d, 0x8b, 0xaa, 0xaa, 0x82, 0x98, 0xff, 0x63, 0x98, 0x1d, 0x9, 0xd9, 0x11}, + { 0x1, 0x7c, 0xea, 0x5a, 0xe7, 0x5a, 0x74, 0x10, 0xe, 0xe0, 0x3c, 0xdf, 0x24, 0x68, 0x39, 0x3e, 0xef, 0x55, 0xdd, 0xab, 0xfe, 0x8f, 0xd5, 0x71, 0x8e, 0x88, 0x90, 0x3e, 0xb9, 0xfd, 0x24, 0x1e, 0x8c, 0xbf, 0x9c, 0x68, 0xae, 0x16, 0xf4, 0xa1, 0xdb, 0x26, 0xc6, 0x35, 0x2a, 0xfc, 0xb1, 0x89, 0x4a, 0x98, 0x12, 0xda, 0x6d, 0x32, 0xcb, 0x86, 0x20, 0x21, 0xc8, 0x6c, 0xd8, 0xaa, 0x48, 0x3a, 0xfc, 0x26}, + { 0x1, 0xaa, 0xc7, 0x69, 0x2b, 0xaf, 0x3a, 0xa9, 0x4a, 0x97, 0x90, 0x73, 0x7, 0x1, 0x8, 0x95, 0xef, 0xc1, 0x33, 0x7c, 0xdd, 0x68, 0x6f, 0x9e, 0xf2, 0xfd, 0x84, 0x4, 0x79, 0x6a, 0x74, 0x70, 0x1e, 0x55, 0xb0, 0x3c, 0xee, 0xf4, 0x1f, 0x3e, 0x6f, 0x50, 0xa0, 0xee, 0xea, 0x11, 0x86, 0x9c, 0x47, 0x89, 0xa3, 0xe8, 0xab, 0x5b, 0x77, 0x32, 0x49, 0x61, 0xd0, 0x81, 0xe1, 0xa3, 0x37, 0x7c, 0xcc, 0x91}, + { 0x0, 0x9, 0xc1, 0xe7, 0xd9, 0x3d, 0x5, 0x6b, 0x5a, 0x97, 0x75, 0x94, 0x58, 0xd5, 0x8c, 0x49, 0x13, 0x4a, 0x45, 0x7, 0x18, 0x54, 0xb8, 0xa6, 0xb8, 0x27, 0x2f, 0x9f, 0xe7, 0xe7, 0x8e, 0x1f, 0x3d, 0x80, 0x97, 0xe8, 0xa6, 0xe7, 0x31, 0xf7, 0xab, 0x48, 0x51, 0xeb, 0x26, 0xd5, 0xaa, 0x4f, 0xda, 0xdb, 0xa6, 0x29, 0x6d, 0xc7, 0xaf, 0x83, 0x5f, 0xe3, 0xd1, 0xb6, 0xdb, 0xa4, 0xb0, 0x31, 0xd5, 0xf3}, + false, + "2 - R changed" + }, + { + { 0x2f, 0xc1, 0x14, 0xa, 0x74, 0x14, 0xe3, 0x3a, 0xb4, 0x69, 0x79, 0x9f, 0x94, 0x32, 0xb3, 0xd, 0x29, 0xd1, 0xe4, 0x45, 0x1b, 0x28, 0xa7, 0x56, 0xa0, 0xf2, 0x4a, 0x7f, 0x7f, 0x90, 0xcb, 0x28, 0x4f, 0xb4, 0x43, 0xc0, 0x74, 0x26, 0x7a, 0x76, 0x0, 0xb3, 0x70, 0xee, 0xff, 0xfe, 0xa2, 0x30, 0x78, 0xb4, 0x1, 0x6b, 0x59, 0xcb, 0xeb, 0x95, 0xfa, 0xb3, 0xc6, 0xf3, 0x7a, 0x72, 0xe9, 0x22, 0x71, 0xb2, 0x9e, 0xe2, 0x38, 0x2e, 0x11, 0x6, 0xf8, 0xdf, 0xd3, 0x87, 0x1e, 0xf9, 0xbf, 0x4, 0x5f, 0x78, 0xd3, 0x78, 0xac, 0xc8, 0xd1, 0x6c, 0x98, 0x3d, 0x54, 0xc7, 0xbc, 0xb, 0xc, 0xb4, 0x6b, 0xba, 0xd, 0xe7, 0x86, 0x30, 0xf6, 0xd0, 0x79, 0x6c, 0x2c, 0x27, 0x5e, 0x46, 0xeb, 0xc8, 0x8e, 0x6e, 0x6c, 0xe, 0x67, 0x5e, 0xbd, 0x84, 0x9f, 0x2, 0xe4, 0x7f, 0x51, 0xab, 0xd2, 0x15}, + { 0x1, 0xd6, 0xae, 0xf4, 0x43, 0x70, 0x32, 0x5a, 0x8a, 0x58, 0x82, 0xf4, 0x66, 0x7c, 0x21, 0x17, 0x2c, 0xdc, 0x8f, 0xa4, 0x1d, 0x71, 0x25, 0x62, 0x88, 0x3e, 0xce, 0xcf, 0xf5, 0x38, 0x83, 0xac, 0x8e, 0xe2, 0x76, 0x12, 0x4e, 0x82, 0x50, 0x88, 0xc7, 0x9d, 0x6c, 0x9d, 0x96, 0x32, 0x3c, 0xb7, 0xb8, 0xc0, 0xb7, 0xea, 0x44, 0xd3, 0xf0, 0x2, 0x6e, 0x25, 0x38, 0xf4, 0xb6, 0x2d, 0x78, 0x5b, 0xb1, 0xaf}, + { 0x0, 0x27, 0x20, 0x39, 0x59, 0xa6, 0xe9, 0x44, 0xb9, 0x1f, 0xe6, 0x30, 0x6d, 0xeb, 0xe7, 0x4d, 0xc5, 0xdd, 0xe9, 0x83, 0x1f, 0xd0, 0xec, 0x27, 0xe8, 0xbe, 0x2d, 0xb, 0x56, 0x80, 0x7d, 0x63, 0x15, 0x1b, 0x15, 0xf6, 0x49, 0x5b, 0x86, 0x32, 0xe9, 0x19, 0xe1, 0xe6, 0xb0, 0x15, 0xf5, 0xae, 0x5f, 0x2b, 0x6f, 0xb8, 0xcf, 0x75, 0xb5, 0xf8, 0x48, 0xf0, 0xc, 0xf4, 0xee, 0x45, 0x7c, 0xeb, 0xed, 0x3a}, + { 0x0, 0x44, 0x17, 0xff, 0x74, 0x88, 0x9d, 0xde, 0x6b, 0xb1, 0x82, 0xb, 0x5d, 0x13, 0xda, 0x5c, 0x81, 0xdc, 0xf9, 0xb0, 0x72, 0x3e, 0xe8, 0x9b, 0xb1, 0xff, 0xd, 0x3f, 0xaa, 0x90, 0xd4, 0x97, 0x68, 0x57, 0x9, 0xf3, 0x15, 0xb2, 0xcb, 0xe5, 0x54, 0x81, 0xde, 0xe4, 0x3e, 0xbb, 0x6d, 0x25, 0xb1, 0x50, 0x1a, 0xe6, 0x94, 0x94, 0xdd, 0x69, 0xe7, 0xbf, 0xfb, 0x72, 0xf9, 0x87, 0xd1, 0x57, 0x3b, 0x93}, + { 0x0, 0xfd, 0x7a, 0xa0, 0x27, 0xc6, 0x65, 0x45, 0x8c, 0x7a, 0xc1, 0x1d, 0x54, 0xd4, 0xf3, 0x2c, 0xb4, 0xa1, 0xe7, 0x27, 0xb4, 0x99, 0xce, 0x27, 0xb0, 0x8d, 0x3d, 0x64, 0x7c, 0x63, 0x6c, 0xc3, 0x22, 0x2a, 0x4f, 0xa, 0x60, 0x57, 0x73, 0x22, 0x49, 0xdd, 0xc2, 0x25, 0x74, 0xd7, 0xcb, 0x80, 0xc3, 0x76, 0x9c, 0x3e, 0xa9, 0xde, 0x3d, 0x33, 0xdb, 0x3e, 0xdd, 0x8e, 0xa9, 0xc, 0xb3, 0xf8, 0xdc, 0x8a}, + false, + "3 - S changed" + }, + { + { 0xf6, 0x94, 0x17, 0xbe, 0xad, 0x3b, 0x1e, 0x20, 0x8c, 0x4c, 0x99, 0x23, 0x6b, 0xf8, 0x44, 0x74, 0xa0, 0xd, 0xe7, 0xf0, 0xb9, 0xdd, 0x23, 0xf9, 0x91, 0xb6, 0xb6, 0xe, 0xf0, 0xfb, 0x3c, 0x62, 0x7, 0x3a, 0x5a, 0x7a, 0xbb, 0x1e, 0xf6, 0x9d, 0xbb, 0xd8, 0xcf, 0x61, 0xe6, 0x42, 0x0, 0xca, 0x8, 0x6d, 0xfd, 0x64, 0x5b, 0x64, 0x1e, 0x8d, 0x2, 0x39, 0x77, 0x82, 0xda, 0x92, 0xd3, 0x54, 0x2f, 0xbd, 0xdf, 0x63, 0x49, 0xac, 0xb, 0x48, 0xb1, 0xb1, 0xd6, 0x9f, 0xe4, 0x62, 0xd1, 0xbb, 0x49, 0x2f, 0x34, 0xdd, 0x40, 0xd1, 0x37, 0x16, 0x38, 0x43, 0xac, 0x11, 0xbd, 0x9, 0x9d, 0xf7, 0x19, 0x21, 0x2c, 0x16, 0xc, 0xbe, 0xbc, 0xb2, 0xab, 0x6f, 0x35, 0x25, 0xe6, 0x48, 0x46, 0xc8, 0x87, 0xe1, 0xb5, 0x2b, 0x52, 0xec, 0xed, 0x94, 0x47, 0xa3, 0xd3, 0x19, 0x38, 0x59, 0x3a, 0x87}, + { 0x1, 0x53, 0xeb, 0x2b, 0xe0, 0x54, 0x38, 0xe5, 0xc1, 0xef, 0xfb, 0x41, 0xb4, 0x13, 0xef, 0xc2, 0x84, 0x3b, 0x92, 0x7c, 0xbf, 0x19, 0xf0, 0xbc, 0x9c, 0xc1, 0x4b, 0x69, 0x3e, 0xee, 0x26, 0x39, 0x4a, 0xd, 0x88, 0x80, 0xdc, 0x94, 0x6a, 0x6, 0x65, 0x6b, 0xcd, 0x9, 0x87, 0x15, 0x44, 0xa5, 0xf1, 0x5c, 0x7a, 0x1f, 0xa6, 0x8e, 0x0, 0xcd, 0xc7, 0x28, 0xc7, 0xcf, 0xb9, 0xc4, 0x48, 0x3, 0x48, 0x67}, + { 0x1, 0x43, 0xae, 0x8e, 0xec, 0xbc, 0xe8, 0xfc, 0xf6, 0xb1, 0x6e, 0x61, 0x59, 0xb2, 0x97, 0xa, 0x9c, 0xeb, 0x32, 0xc1, 0x7c, 0x1d, 0x87, 0x8c, 0x9, 0x31, 0x73, 0x11, 0xb7, 0x51, 0x9e, 0xd5, 0xec, 0xe3, 0x37, 0x4e, 0x79, 0x29, 0xf3, 0x38, 0xdd, 0xd0, 0xec, 0x5, 0x22, 0xd8, 0x1f, 0x2f, 0xa4, 0xfa, 0x47, 0x3, 0x3e, 0xf0, 0xc0, 0x87, 0x2d, 0xc0, 0x49, 0xbb, 0x89, 0x23, 0x3e, 0xef, 0x9b, 0xc1}, + { 0x0, 0xdd, 0x63, 0x39, 0x47, 0x44, 0x6d, 0xd, 0x51, 0xa9, 0x6a, 0x1, 0x73, 0xc0, 0x11, 0x25, 0x85, 0x8a, 0xbb, 0x2b, 0xec, 0xe6, 0x70, 0xaf, 0x92, 0x2a, 0x92, 0xde, 0xdc, 0xec, 0x6, 0x71, 0x36, 0xc1, 0xfa, 0x92, 0xe5, 0xfa, 0x73, 0xd7, 0x11, 0x6a, 0xc9, 0xc1, 0xa4, 0x2b, 0x9c, 0xb6, 0x42, 0xe4, 0xac, 0x19, 0x31, 0xb, 0x4, 0x9e, 0x48, 0xc5, 0x30, 0x11, 0xff, 0xc6, 0xe7, 0x46, 0x1c, 0x36}, + { 0x0, 0xef, 0xbd, 0xc6, 0xa4, 0x14, 0xbb, 0x8d, 0x66, 0x3b, 0xb5, 0xcd, 0xb7, 0xc5, 0x86, 0xbc, 0xcf, 0xe7, 0x58, 0x90, 0x49, 0x7, 0x6f, 0x98, 0xce, 0xe8, 0x2c, 0xdb, 0x5d, 0x20, 0x3f, 0xdd, 0xb2, 0xe0, 0xff, 0xb7, 0x79, 0x54, 0x95, 0x9d, 0xfa, 0x5e, 0xd0, 0xde, 0x85, 0xe, 0x42, 0xa8, 0x6f, 0x5a, 0x63, 0xc5, 0xa6, 0x59, 0x2e, 0x9b, 0x9b, 0x8b, 0xd1, 0xb4, 0x5, 0x57, 0xb9, 0xcd, 0xc, 0xc0}, + true, + "P" + }, + { + { 0x36, 0x7, 0xea, 0xa1, 0xdb, 0x2f, 0x69, 0x6b, 0x93, 0xd5, 0x73, 0xf6, 0x7f, 0x3, 0x59, 0x42, 0x21, 0x1, 0xcc, 0x6c, 0xeb, 0x52, 0x6a, 0x5e, 0xc8, 0x7b, 0x24, 0x9e, 0x5b, 0x79, 0x1a, 0xc4, 0xdf, 0x48, 0x8f, 0x48, 0x32, 0xeb, 0x0, 0xc6, 0xec, 0x94, 0xbb, 0x52, 0xb7, 0xdd, 0x9d, 0x95, 0x3a, 0x9c, 0x3c, 0xed, 0x3f, 0xb7, 0x17, 0x1d, 0x28, 0xc4, 0x2f, 0x81, 0xfd, 0x99, 0x98, 0xcd, 0x7d, 0x35, 0xc7, 0x3, 0x9, 0x75, 0x38, 0x1e, 0x54, 0xe0, 0x71, 0xa3, 0x7e, 0xb4, 0x1d, 0x3e, 0x41, 0x9f, 0xe9, 0x35, 0x76, 0xd1, 0x41, 0xe3, 0x6a, 0x98, 0x0, 0x89, 0xdb, 0x54, 0xeb, 0xbf, 0x3a, 0x3e, 0xbf, 0x8a, 0x7, 0x6d, 0xaf, 0x8e, 0x57, 0xce, 0x44, 0x84, 0xd7, 0xf7, 0xd2, 0x34, 0xe1, 0xf6, 0xd6, 0x58, 0xda, 0x51, 0x3, 0xa6, 0xe1, 0xd6, 0xae, 0x96, 0x41, 0xec, 0xac, 0x79}, + { 0x1, 0x18, 0x4b, 0x27, 0xa4, 0x8e, 0x22, 0x38, 0x91, 0xcb, 0xd1, 0xf4, 0xa0, 0x25, 0x57, 0x47, 0xd0, 0x78, 0xf8, 0x27, 0x68, 0x15, 0x7e, 0x5a, 0xdc, 0xc8, 0xe7, 0x83, 0x55, 0xa2, 0xff, 0x17, 0xd8, 0x36, 0x3d, 0xfa, 0x39, 0xbc, 0xdb, 0x48, 0xe2, 0xfa, 0xe7, 0x59, 0xea, 0x3b, 0xd6, 0xa8, 0x90, 0x9c, 0xe1, 0xb2, 0xe7, 0xc2, 0x6, 0x53, 0x91, 0x5b, 0x7c, 0xd7, 0xb9, 0x4d, 0x8f, 0x11, 0x3, 0x49}, + { 0x0, 0x3b, 0xd6, 0xe2, 0x73, 0xee, 0x42, 0x78, 0x74, 0x3f, 0x1b, 0xb7, 0x1f, 0xf7, 0xae, 0xfe, 0x1f, 0x2c, 0x52, 0x95, 0x4d, 0x67, 0x4c, 0x96, 0xf2, 0x68, 0xf3, 0x98, 0x5e, 0x69, 0x72, 0x7f, 0x22, 0xad, 0xbe, 0x31, 0xe0, 0xdb, 0xe0, 0x1d, 0xa9, 0x1e, 0x3e, 0x6d, 0x19, 0xba, 0xf8, 0xef, 0xa4, 0xdc, 0xb4, 0xd1, 0xca, 0xcd, 0x6, 0xa8, 0xef, 0xe1, 0xb6, 0x17, 0xbd, 0x68, 0x18, 0x39, 0xe6, 0xb9}, + { 0x0, 0x4c, 0x1d, 0x88, 0xd0, 0x38, 0x78, 0xf9, 0x67, 0x13, 0x3e, 0xb5, 0x67, 0x14, 0x94, 0x5d, 0x3c, 0x89, 0xc3, 0x20, 0xf, 0xad, 0x8, 0xbd, 0x2d, 0x3b, 0x93, 0x1, 0x90, 0x24, 0x6b, 0xf8, 0xd4, 0x3e, 0x45, 0x36, 0x43, 0xc9, 0x4f, 0xda, 0xb9, 0xc6, 0x46, 0xc5, 0xa1, 0x12, 0x71, 0xc8, 0x0, 0xd5, 0xdf, 0x25, 0xc1, 0x19, 0x27, 0xc0, 0x0, 0x26, 0x3e, 0x78, 0x52, 0x51, 0xd6, 0x2a, 0xcd, 0x59}, + { 0x1, 0x2e, 0x31, 0x76, 0x6a, 0xf5, 0xc6, 0x5, 0xa1, 0xa6, 0x78, 0x34, 0x70, 0x20, 0x52, 0xe7, 0xe5, 0x6b, 0xbd, 0x9e, 0x23, 0x81, 0x16, 0x3a, 0x9b, 0xf1, 0x6b, 0x57, 0x99, 0x12, 0xa9, 0x8b, 0xeb, 0xab, 0xb7, 0x5, 0x87, 0xda, 0x58, 0xbe, 0xc6, 0x21, 0xc1, 0xe7, 0x79, 0xa8, 0xa2, 0x1c, 0x19, 0x3d, 0xda, 0x7, 0x85, 0x1, 0x8f, 0xd5, 0x80, 0x34, 0xf9, 0xa6, 0xac, 0x3e, 0x29, 0x7e, 0x37, 0x90}, + false, + "1 - Message changed" + }, + { + { 0x30, 0x7b, 0xfa, 0x6a, 0x27, 0x64, 0x59, 0x1b, 0xc3, 0x15, 0x37, 0xfc, 0xbc, 0x72, 0x75, 0xe2, 0x58, 0xf1, 0x58, 0xf4, 0xb7, 0xac, 0x5c, 0xb0, 0x37, 0x61, 0xaa, 0xfe, 0xe8, 0xff, 0xc, 0x58, 0xa9, 0x33, 0xcd, 0x28, 0xa3, 0x8f, 0xcd, 0x1a, 0x29, 0xa7, 0xc9, 0x7, 0x5, 0xc, 0x27, 0x3b, 0xff, 0xb2, 0x49, 0x30, 0x3e, 0xa0, 0x0, 0x7d, 0x16, 0xc8, 0xc4, 0xaa, 0xaf, 0x14, 0x5a, 0xfe, 0x9c, 0xc9, 0x72, 0x85, 0xd3, 0x3a, 0x8b, 0xd4, 0x2f, 0x56, 0x6b, 0x1b, 0xea, 0x7a, 0x5e, 0xf7, 0x78, 0x44, 0xe3, 0xd7, 0xc3, 0xb5, 0x51, 0x32, 0xac, 0x74, 0x7, 0xda, 0x4, 0xf1, 0xa7, 0xe8, 0x5e, 0xc7, 0xf2, 0xd0, 0x3b, 0x66, 0x7d, 0x9c, 0x3c, 0x52, 0xeb, 0xeb, 0x1d, 0x25, 0xb3, 0x92, 0xfb, 0x4a, 0xa2, 0x10, 0xaf, 0xf2, 0xda, 0xc0, 0xf, 0xfd, 0x1b, 0x14, 0xb0, 0xe2, 0x11, 0x2f}, + { 0x1, 0xd9, 0x2, 0xb, 0x8e, 0x67, 0x17, 0x25, 0x4e, 0xeb, 0xe6, 0x19, 0xd4, 0x6d, 0xd5, 0xa9, 0xdd, 0xa7, 0xba, 0x54, 0x91, 0xa7, 0xd1, 0xb6, 0x82, 0xf, 0xba, 0x88, 0x8e, 0x23, 0x6f, 0xaf, 0xd7, 0x11, 0x79, 0x20, 0x4, 0x37, 0xf4, 0xd6, 0x12, 0x84, 0xfb, 0x5a, 0x3d, 0xfb, 0xad, 0xa6, 0x6b, 0xac, 0x3e, 0x69, 0x9, 0xcc, 0xbe, 0xee, 0x3, 0xc2, 0xb9, 0x3a, 0x8b, 0xeb, 0xe4, 0x1a, 0x73, 0xf4}, + { 0x0, 0x48, 0xa5, 0xf0, 0x91, 0x74, 0xfd, 0xa1, 0x27, 0x4, 0xac, 0xdd, 0x8e, 0xd5, 0x60, 0x69, 0x5d, 0xec, 0x42, 0x86, 0x4b, 0x63, 0x0, 0xa0, 0x30, 0x76, 0x8a, 0xb, 0xe7, 0xf0, 0x9d, 0x25, 0xf8, 0x2d, 0x7b, 0x12, 0x61, 0x25, 0xe4, 0x14, 0x17, 0xa1, 0x45, 0x64, 0x19, 0x37, 0x80, 0x7e, 0xd8, 0xd1, 0xaf, 0x7a, 0x53, 0xf5, 0xbc, 0x3f, 0xc3, 0xc5, 0x74, 0x27, 0xd7, 0x55, 0xdc, 0xce, 0x3e, 0x25}, + { 0x0, 0x92, 0xdf, 0x2d, 0xcb, 0x45, 0x7f, 0xc7, 0x57, 0x8e, 0xaa, 0xcc, 0x98, 0xff, 0xd7, 0x3a, 0xde, 0x7, 0xd7, 0x64, 0xe9, 0x55, 0x35, 0x6, 0xf3, 0xdc, 0x95, 0x8c, 0xdb, 0x3f, 0x65, 0xd3, 0x76, 0x65, 0x52, 0x8c, 0xb2, 0xf5, 0xf8, 0xbd, 0xed, 0xd, 0xb0, 0xa5, 0x7e, 0x6f, 0xa7, 0x3b, 0xfa, 0xd1, 0xaa, 0xf9, 0x47, 0x18, 0x37, 0x9d, 0x16, 0x55, 0xdb, 0x4f, 0x32, 0xd4, 0xc5, 0x5, 0xa7, 0x85}, + { 0x1, 0xe, 0xc, 0x31, 0x47, 0x9c, 0x2b, 0x29, 0xdc, 0x27, 0x26, 0xfe, 0x9f, 0x75, 0xb3, 0x97, 0xd9, 0xe3, 0x7a, 0x17, 0x61, 0x9e, 0x96, 0xbc, 0x63, 0x1c, 0x62, 0xe9, 0xec, 0xe7, 0x1f, 0x5, 0xb1, 0x99, 0x80, 0x4c, 0xc8, 0x3, 0x94, 0xd, 0x43, 0xdd, 0xee, 0x41, 0x17, 0x1d, 0xd7, 0x78, 0x76, 0x68, 0xc7, 0xdb, 0x5, 0x4, 0x9d, 0xd5, 0xb6, 0x3e, 0x4f, 0x63, 0x56, 0x2a, 0xa7, 0x0, 0xca, 0x81}, + false, + "3 - S changed" + }, + { + { 0x36, 0x29, 0xce, 0x61, 0x37, 0xcf, 0xfa, 0xf0, 0xa4, 0x85, 0x59, 0x4c, 0xd4, 0x70, 0x49, 0xe7, 0x86, 0x6f, 0xa8, 0x1b, 0xb5, 0x6d, 0xd6, 0x61, 0x68, 0x56, 0x75, 0x42, 0xc6, 0xb8, 0xfd, 0xf7, 0xdb, 0xaf, 0xe6, 0x93, 0xc9, 0x19, 0xa7, 0x28, 0x8a, 0x3, 0xf2, 0x48, 0x3b, 0x9, 0xc9, 0xcd, 0x2b, 0x3f, 0x91, 0x67, 0x2, 0x64, 0x67, 0x29, 0x67, 0xe4, 0x54, 0x2d, 0x5b, 0xb6, 0xc8, 0x7e, 0x86, 0x11, 0x15, 0xff, 0x3e, 0xc2, 0xec, 0x2e, 0x96, 0x53, 0x51, 0x48, 0x62, 0x3e, 0x80, 0x52, 0x5a, 0xba, 0xe8, 0xd7, 0x1f, 0x29, 0x6a, 0x4e, 0x89, 0x47, 0xb4, 0x8b, 0xb6, 0x40, 0x74, 0xeb, 0xb7, 0xe0, 0xc7, 0xa5, 0x86, 0xf5, 0x7b, 0x35, 0xda, 0x91, 0x7, 0x4, 0xf4, 0x4b, 0x41, 0x15, 0x1a, 0xc6, 0xdb, 0x35, 0xc, 0x47, 0xe8, 0x18, 0x5, 0xfc, 0x69, 0x32, 0xf4, 0x35, 0xa9, 0x8a}, + { 0x0, 0x7, 0x6, 0x7d, 0x2c, 0xf7, 0xb7, 0x61, 0x9b, 0x9f, 0xcf, 0xf2, 0xc8, 0x98, 0x24, 0x6a, 0xe0, 0x95, 0x4, 0x39, 0xb8, 0xba, 0xb9, 0x2d, 0x80, 0x96, 0x24, 0x97, 0xe, 0xda, 0x18, 0x45, 0x6c, 0xb9, 0x99, 0x53, 0xce, 0x1a, 0xe4, 0x5e, 0xe5, 0xd3, 0x6e, 0xf0, 0x2f, 0xcd, 0x5c, 0xaa, 0x4d, 0x95, 0x1d, 0xe8, 0x58, 0x1f, 0xc, 0x21, 0xe5, 0x72, 0xca, 0xad, 0x56, 0xd6, 0xdc, 0xe6, 0xd, 0xa3}, + { 0x1, 0x91, 0x3c, 0x59, 0x0, 0x7a, 0x30, 0x90, 0x5, 0xf2, 0x26, 0xb6, 0xa3, 0x1, 0x22, 0x82, 0x8d, 0x60, 0xb4, 0xd0, 0x39, 0x3, 0x59, 0xe1, 0x97, 0x7f, 0x88, 0xb5, 0x34, 0x7d, 0xac, 0xf2, 0x5, 0x6d, 0xd3, 0x62, 0x64, 0x8e, 0x8b, 0x1d, 0x6f, 0xc0, 0x38, 0xa3, 0xbd, 0x3f, 0xde, 0x6f, 0x11, 0x40, 0xc7, 0x40, 0xef, 0xa9, 0x7, 0x5a, 0xb8, 0xb4, 0xa6, 0x4b, 0x33, 0x4c, 0x5c, 0xd4, 0x3f, 0x9}, + { 0x1, 0x2a, 0xa4, 0xa5, 0x32, 0xc1, 0x8, 0xaa, 0x3c, 0xfb, 0x17, 0x53, 0xf9, 0x5c, 0xa6, 0x26, 0xbb, 0x72, 0xbd, 0x96, 0xa4, 0x23, 0xd7, 0x27, 0x65, 0x6d, 0x4e, 0xbd, 0xc3, 0xf4, 0x6, 0xd6, 0xcc, 0x6c, 0x44, 0xd3, 0x71, 0x8f, 0x9a, 0xba, 0xe8, 0xa0, 0xb4, 0x6b, 0xe9, 0xb5, 0x7f, 0x8f, 0xd3, 0xa5, 0x40, 0x32, 0x6b, 0x63, 0xd0, 0xd4, 0xa8, 0xa9, 0x31, 0x65, 0x71, 0x59, 0x20, 0x43, 0x77, 0x87}, + { 0x0, 0x1b, 0xad, 0xaf, 0x38, 0xe1, 0x6e, 0xfd, 0x75, 0x91, 0x5f, 0x48, 0x6, 0xf0, 0x54, 0xd4, 0xa, 0xbd, 0x2d, 0x11, 0xe4, 0x2, 0x3, 0x9b, 0xd4, 0x8c, 0x83, 0x2f, 0x66, 0xcb, 0xfd, 0x14, 0x5e, 0x4d, 0xac, 0x93, 0x35, 0x7d, 0x47, 0x6b, 0x7e, 0x60, 0x8d, 0x7b, 0x75, 0xa0, 0x17, 0x37, 0x4a, 0xe7, 0x6e, 0xee, 0x86, 0xc5, 0x5, 0xf2, 0xcc, 0x16, 0xea, 0xa1, 0x90, 0x75, 0x82, 0x7c, 0xcd, 0x60}, + false, + "4 - Q changed" + }, + { + { 0x27, 0x38, 0x3a, 0x92, 0x3d, 0x22, 0x29, 0x2d, 0xac, 0xff, 0x10, 0x5f, 0x0, 0xd0, 0x43, 0x3e, 0xb7, 0x19, 0xcc, 0x5f, 0xdf, 0xd, 0x55, 0x5f, 0x5, 0xa7, 0x5f, 0xef, 0x39, 0x2e, 0xb9, 0xa2, 0xb1, 0xa, 0xa7, 0x98, 0x4f, 0xf8, 0xcf, 0xcc, 0x14, 0x25, 0x36, 0x65, 0x78, 0xd1, 0x38, 0xd1, 0x93, 0xd7, 0x35, 0x70, 0x6e, 0x96, 0x89, 0xe1, 0xf2, 0x59, 0x3, 0x74, 0x7, 0x5c, 0x3b, 0x1, 0x43, 0xcf, 0x2a, 0x6f, 0xd, 0x21, 0x8, 0xdc, 0xc3, 0xd6, 0x68, 0x2c, 0x6, 0xe, 0x3, 0x6c, 0x39, 0x97, 0x74, 0xa3, 0xbc, 0x78, 0x0, 0xc7, 0xf3, 0x4c, 0xba, 0x20, 0x46, 0x93, 0xa4, 0x28, 0x3, 0xdf, 0x65, 0x92, 0x16, 0x5f, 0xa1, 0x9e, 0x34, 0xb6, 0xc1, 0x87, 0x2e, 0xa1, 0x1a, 0xa1, 0x3e, 0x7a, 0x66, 0x48, 0xa4, 0xf0, 0xd5, 0x6a, 0x5b, 0xf4, 0x1d, 0xff, 0xd8, 0xf0, 0x3a, 0xa4}, + { 0x0, 0x36, 0x53, 0x88, 0xd9, 0x58, 0x9c, 0x18, 0xae, 0x60, 0x81, 0x24, 0xb4, 0xcf, 0x74, 0x6f, 0xf4, 0x88, 0x18, 0x3a, 0x91, 0x2e, 0x7, 0xd2, 0x6b, 0x6e, 0x86, 0x7c, 0x5d, 0xef, 0xb5, 0x52, 0xa5, 0xa0, 0xdf, 0x5a, 0x16, 0xb6, 0x34, 0x20, 0x14, 0xdd, 0x1b, 0xb, 0x67, 0x60, 0x7, 0x2b, 0xcd, 0x60, 0x4, 0x5d, 0x6a, 0x9a, 0x51, 0x4f, 0xc7, 0x4d, 0x16, 0x4, 0x7c, 0x2e, 0x87, 0x65, 0x63, 0x6d}, + { 0x1, 0xa5, 0x31, 0x9b, 0x26, 0xfd, 0x55, 0x5f, 0x2a, 0x12, 0xe5, 0x57, 0x41, 0x8f, 0x6a, 0xa6, 0x5a, 0x34, 0x61, 0xae, 0xae, 0xa5, 0xc0, 0xc6, 0xd8, 0x69, 0x8c, 0xea, 0xa5, 0x49, 0x5e, 0xed, 0x7a, 0x7d, 0x2f, 0xed, 0xb, 0x76, 0xe7, 0x7b, 0x5b, 0xe1, 0x18, 0x34, 0xf3, 0x6e, 0x41, 0x3d, 0x52, 0x88, 0xe4, 0x72, 0x31, 0xc0, 0xeb, 0xe, 0x90, 0x7, 0xd4, 0xb0, 0x42, 0xbb, 0x7a, 0x1b, 0x60, 0x14}, + { 0x1, 0xd9, 0xef, 0x37, 0x70, 0x63, 0xa5, 0x92, 0xcf, 0x81, 0xe2, 0x78, 0x15, 0xa2, 0xc2, 0x7, 0x89, 0xff, 0x9b, 0x60, 0xf7, 0xf1, 0x25, 0xe6, 0x18, 0xb5, 0x2d, 0x90, 0xb3, 0x5a, 0xbd, 0xd4, 0x1c, 0xd7, 0xf4, 0x37, 0xcf, 0xad, 0x33, 0x79, 0x53, 0xab, 0x3, 0x14, 0xfe, 0x8e, 0x79, 0xa2, 0xf2, 0xd2, 0x7f, 0xa0, 0x85, 0x97, 0xd4, 0xb2, 0x83, 0x13, 0x35, 0x8f, 0x71, 0x4a, 0x73, 0x73, 0x21, 0xfb}, + { 0x0, 0xf0, 0x1d, 0x4f, 0x15, 0xe, 0xa, 0x17, 0x46, 0x74, 0xa6, 0xa6, 0x1a, 0x58, 0xa4, 0xba, 0x78, 0x14, 0x6, 0x2, 0x4f, 0x6d, 0xd1, 0xb5, 0x25, 0x2e, 0x4, 0x80, 0x7b, 0x8a, 0x80, 0x7a, 0x4f, 0xf8, 0xd5, 0x28, 0x83, 0xea, 0xa2, 0x58, 0x28, 0x6e, 0x50, 0x6e, 0xf4, 0xb0, 0x4c, 0xa8, 0x90, 0xe6, 0xf8, 0x1a, 0x79, 0xed, 0x9a, 0xc, 0xd5, 0xed, 0x58, 0x50, 0x94, 0xfe, 0xa0, 0xbc, 0x5c, 0x43}, + true, + "P" + }, + { + { 0x22, 0x35, 0x70, 0x5a, 0x18, 0xad, 0x2f, 0xc1, 0x94, 0xd, 0x6f, 0x16, 0x41, 0xef, 0x3b, 0x70, 0x19, 0xe5, 0x6e, 0x1c, 0xad, 0x1, 0xaa, 0x4c, 0x6d, 0xa1, 0x81, 0x50, 0xd6, 0x22, 0x55, 0x12, 0x6, 0xdd, 0x0, 0x16, 0x3e, 0x71, 0xb9, 0xc2, 0xb1, 0x33, 0xf2, 0x95, 0x7, 0xfd, 0xef, 0x14, 0x4c, 0x6f, 0xa4, 0xa1, 0x11, 0xa, 0x30, 0xeb, 0x30, 0x9b, 0x4, 0xb3, 0xf3, 0xf9, 0xd7, 0xf5, 0xd6, 0x64, 0x9e, 0xc3, 0xcf, 0x94, 0x16, 0xc8, 0x14, 0x5e, 0x12, 0xa0, 0x93, 0x4d, 0xb1, 0xe4, 0x8f, 0xf1, 0x48, 0x0, 0xb2, 0x38, 0xa4, 0xab, 0xe1, 0xe2, 0xb9, 0x5a, 0xe6, 0x98, 0x4a, 0x47, 0xab, 0xa1, 0x14, 0x8, 0xb5, 0xf4, 0xdb, 0xc2, 0xcb, 0xa8, 0x58, 0xd5, 0x2d, 0x58, 0x2, 0x2b, 0x66, 0xba, 0x27, 0x21, 0x57, 0x3b, 0x83, 0xd5, 0xb6, 0x2f, 0x7, 0xf3, 0x8c, 0x4c, 0x58, 0xda}, + { 0x0, 0xfd, 0xc, 0xac, 0x24, 0xae, 0xb7, 0x5c, 0xa5, 0xc, 0x50, 0xa7, 0x23, 0x40, 0x25, 0x6b, 0x43, 0x64, 0x90, 0x50, 0xe0, 0xfa, 0x15, 0x5f, 0x72, 0x34, 0x28, 0x77, 0xbf, 0x49, 0xc3, 0xd5, 0x7a, 0xc2, 0xb5, 0x1b, 0x82, 0x83, 0x85, 0xee, 0x6a, 0xea, 0x94, 0xba, 0xe3, 0x85, 0x87, 0xe6, 0x33, 0x90, 0xf5, 0xef, 0x4a, 0xc5, 0x54, 0xa, 0x9e, 0x6f, 0xc6, 0xf1, 0xc1, 0xe7, 0x9b, 0x52, 0x46, 0x93}, + { 0x1, 0x7, 0xb2, 0x27, 0xbd, 0xd3, 0x7, 0xef, 0xd7, 0xa8, 0xd4, 0x3, 0x4f, 0x73, 0x3d, 0x15, 0xc, 0x41, 0x60, 0x12, 0x15, 0xe7, 0x6e, 0xea, 0x2b, 0xac, 0x62, 0xad, 0x24, 0x27, 0xdf, 0xf5, 0x2f, 0x75, 0xf4, 0x6d, 0xa3, 0xd5, 0xfe, 0x31, 0xbf, 0xae, 0xdf, 0x7, 0x1d, 0x2a, 0x8b, 0xb5, 0xe3, 0xc8, 0x2b, 0xf6, 0xc8, 0x4e, 0xcd, 0xf8, 0x9c, 0xa2, 0x33, 0xc9, 0x2d, 0x59, 0x9d, 0x37, 0x63, 0x9}, + { 0x1, 0xc0, 0x1, 0x96, 0xaa, 0x5d, 0xcb, 0xc4, 0xc4, 0x40, 0x4f, 0xa7, 0x65, 0x4, 0xa5, 0xea, 0xcb, 0xc9, 0x6a, 0xa6, 0x6c, 0x3b, 0xa5, 0x31, 0xa3, 0xa6, 0x79, 0xf3, 0xfb, 0x67, 0x5c, 0xe5, 0x8f, 0x86, 0x3e, 0x8, 0xb0, 0xd2, 0xbd, 0xea, 0xe7, 0x4d, 0x96, 0xad, 0x93, 0xa3, 0x9a, 0x78, 0xed, 0x4b, 0xb3, 0x74, 0x9e, 0x26, 0x56, 0x7d, 0xc, 0xa5, 0xc4, 0x8a, 0x71, 0x7, 0x99, 0x25, 0xb6, 0x17}, + { 0x0, 0xf1, 0x18, 0x8e, 0xba, 0x4f, 0x9, 0x43, 0xf4, 0x0, 0x3d, 0xda, 0xd6, 0xa5, 0x46, 0x6, 0xc1, 0x3a, 0xf2, 0x60, 0x14, 0xdb, 0x2e, 0xb8, 0xe6, 0x5, 0x34, 0xfa, 0xd3, 0xda, 0xe8, 0xf0, 0x7c, 0x2, 0x1c, 0xea, 0x9, 0x90, 0x98, 0x7f, 0x1e, 0x2, 0xdc, 0xe0, 0x3f, 0xe5, 0x33, 0x60, 0x47, 0x2c, 0x3d, 0xee, 0x3c, 0x30, 0x5b, 0xb3, 0xef, 0x4b, 0xb, 0x53, 0xea, 0x66, 0x25, 0xbf, 0x15, 0x2a}, + false, + "2 - R changed" + }, + { + { 0xf1, 0xf3, 0xb2, 0x86, 0x30, 0x75, 0x69, 0x70, 0x45, 0x38, 0xc9, 0x7c, 0x68, 0xa, 0xbd, 0x5b, 0xb8, 0x92, 0xb4, 0x21, 0x46, 0x38, 0x95, 0xc7, 0x4a, 0xa8, 0xe1, 0xc4, 0xa4, 0x62, 0x13, 0xf2, 0x1a, 0x95, 0x94, 0x1b, 0x86, 0x29, 0xaf, 0x81, 0x17, 0xc2, 0xa0, 0xc, 0xbb, 0x71, 0xf4, 0x4d, 0x79, 0x91, 0x73, 0x57, 0xd5, 0x29, 0xe4, 0x86, 0xd8, 0xd5, 0xb8, 0x64, 0xf, 0x80, 0x99, 0x60, 0x97, 0x3f, 0xe9, 0xe2, 0x8b, 0x34, 0xc6, 0xe4, 0x8, 0x2f, 0x3b, 0x3b, 0x6, 0x89, 0xfd, 0x44, 0xd3, 0xaf, 0xe5, 0xb7, 0x1b, 0xf4, 0x34, 0x9d, 0x32, 0xb7, 0xd8, 0xe, 0xf5, 0xe2, 0x2d, 0x58, 0xf1, 0x9a, 0x13, 0x8e, 0x1b, 0x67, 0x6a, 0xdd, 0xf3, 0x84, 0xb3, 0xe5, 0x47, 0x95, 0xc6, 0xce, 0xe5, 0x32, 0x64, 0xf8, 0x83, 0xd0, 0x80, 0x63, 0xb, 0xf4, 0x8f, 0x49, 0x87, 0x61, 0xe6, 0xaa}, + { 0x1, 0x4, 0xa9, 0x6b, 0xee, 0xa0, 0x9d, 0x88, 0xea, 0x67, 0x89, 0xa9, 0x92, 0x58, 0x80, 0xc8, 0xa9, 0xec, 0xe8, 0xd7, 0x64, 0xbe, 0x93, 0x16, 0x75, 0x64, 0xc, 0x1b, 0xf8, 0x47, 0xac, 0x8e, 0x7a, 0x8b, 0x14, 0xf4, 0x8, 0xba, 0x67, 0x22, 0xc2, 0xbf, 0x62, 0x95, 0xdb, 0x91, 0x32, 0xd6, 0xad, 0x2f, 0xe2, 0x87, 0xfa, 0x6e, 0x68, 0x55, 0xf7, 0xc5, 0x8e, 0xd2, 0x38, 0x14, 0x8a, 0x89, 0x69, 0x44}, + { 0x1, 0xb5, 0xe8, 0xe6, 0x43, 0xfa, 0xe5, 0x52, 0x26, 0x14, 0x27, 0xea, 0x7d, 0x52, 0x1f, 0x38, 0xa, 0xdf, 0x60, 0x55, 0x79, 0x46, 0x23, 0x15, 0xc7, 0x5e, 0x92, 0x3, 0x20, 0x3e, 0xbd, 0xc9, 0xee, 0x33, 0xdd, 0x7b, 0xa8, 0x85, 0xb6, 0xcc, 0xcc, 0xcb, 0xd2, 0x32, 0x74, 0x62, 0x98, 0x82, 0x23, 0xc4, 0xb3, 0x14, 0x85, 0x31, 0x1c, 0x93, 0x5a, 0x34, 0x1e, 0xe8, 0x7b, 0xa1, 0xee, 0x82, 0xc, 0xe0}, + { 0x0, 0xba, 0x2c, 0x57, 0x82, 0x7b, 0xaa, 0xe6, 0x84, 0xd2, 0xc6, 0x37, 0x59, 0x2, 0x75, 0xc7, 0x82, 0xa6, 0xdb, 0x26, 0x3a, 0x53, 0x58, 0xc8, 0xe1, 0xa0, 0x8b, 0x54, 0x60, 0xca, 0x3c, 0xf0, 0xf5, 0xff, 0x8d, 0x41, 0x19, 0xa6, 0xb0, 0xd5, 0x5f, 0xc6, 0x8a, 0x75, 0xc7, 0x93, 0x9, 0x8e, 0xa, 0x56, 0x22, 0xa0, 0xb4, 0xe2, 0xfc, 0xb0, 0xf1, 0x79, 0x43, 0x44, 0x1, 0x38, 0xd7, 0x51, 0x79, 0x7b}, + { 0x1, 0x59, 0x4b, 0xeb, 0x73, 0xb2, 0xeb, 0xb7, 0xc5, 0x73, 0xff, 0x7, 0xb5, 0xc4, 0x3e, 0x72, 0x2d, 0xc0, 0x59, 0x79, 0xdf, 0xe, 0xef, 0x53, 0x58, 0x7e, 0x9f, 0xe0, 0x6a, 0x92, 0xf, 0x61, 0xd2, 0xef, 0xcc, 0x76, 0x71, 0xe6, 0xcb, 0x87, 0x5d, 0xf4, 0xe4, 0xd9, 0x2c, 0xd4, 0xd3, 0x7c, 0xc3, 0xea, 0xdc, 0xb9, 0xb6, 0xae, 0xe8, 0xf2, 0x9, 0x77, 0x90, 0xce, 0x24, 0xd6, 0xdc, 0xda, 0x87, 0x6}, + false, + "4 - Q changed" + }, + { + { 0xb6, 0xfd, 0x67, 0x20, 0x65, 0x77, 0x4d, 0x5c, 0x25, 0x2a, 0x6a, 0x59, 0x6d, 0x3, 0x73, 0xb8, 0x98, 0x46, 0x5a, 0xf6, 0x77, 0x8c, 0x72, 0x19, 0x1, 0x1d, 0xb4, 0x82, 0xfd, 0x94, 0xa4, 0xe2, 0x60, 0xdf, 0x7f, 0xb7, 0xbd, 0x37, 0x3, 0xda, 0x72, 0x93, 0xe9, 0x6e, 0x53, 0x24, 0xc1, 0x2f, 0x5b, 0x8e, 0x1c, 0xd2, 0xc2, 0x7d, 0xc3, 0x6, 0x20, 0x7, 0xb6, 0xea, 0x8, 0xe1, 0xfc, 0xc8, 0x19, 0xca, 0x9, 0x90, 0x33, 0xee, 0xb0, 0xa8, 0x8a, 0xe2, 0x8f, 0xe4, 0x9b, 0xe3, 0x30, 0xa1, 0xb7, 0x27, 0xd4, 0x9f, 0xbf, 0xf8, 0xf4, 0x97, 0xed, 0xb4, 0x5b, 0x8e, 0xf, 0xa1, 0x55, 0x3c, 0x33, 0xe2, 0x6f, 0xf9, 0xb4, 0xc3, 0x5b, 0x72, 0x9b, 0x85, 0xa6, 0xe9, 0x86, 0x54, 0xec, 0x3f, 0x46, 0xa2, 0x8, 0x9b, 0x6f, 0x86, 0x30, 0x33, 0x49, 0x8e, 0x1e, 0x4a, 0xac, 0x36, 0x90, 0xf9}, + { 0x1, 0xd, 0x58, 0x7a, 0xa8, 0x2a, 0x4d, 0x8e, 0x69, 0x6, 0x72, 0xc0, 0xe, 0x3f, 0xd7, 0x18, 0x26, 0xd8, 0x92, 0x86, 0x2d, 0x14, 0xdc, 0x4f, 0xba, 0xd4, 0x93, 0x5a, 0xaa, 0xb8, 0x69, 0x24, 0xdc, 0x7e, 0xe6, 0xf7, 0xfd, 0x3e, 0x2b, 0xbe, 0x86, 0xa8, 0x65, 0x25, 0x89, 0x44, 0x84, 0x94, 0xda, 0xb8, 0x3d, 0x36, 0x3d, 0x1d, 0x62, 0x3c, 0xba, 0xe5, 0x9f, 0x6c, 0x26, 0x70, 0x70, 0x6a, 0x5, 0x76}, + { 0x1, 0xa9, 0x73, 0x4c, 0x99, 0xb6, 0xff, 0x21, 0x26, 0x70, 0x50, 0x73, 0x89, 0x37, 0xc3, 0x9, 0x71, 0xd0, 0xf6, 0xfe, 0x7, 0xe2, 0x97, 0x94, 0x74, 0x8a, 0x50, 0x17, 0xea, 0x10, 0x36, 0xc9, 0x75, 0xc9, 0xa5, 0x2e, 0x6d, 0x37, 0x39, 0xca, 0xe, 0x8d, 0x70, 0xe7, 0x84, 0x52, 0x9c, 0xc1, 0xa7, 0x43, 0x7a, 0xac, 0x5d, 0x75, 0xc6, 0x91, 0x21, 0xb6, 0x90, 0x20, 0xa9, 0x53, 0x56, 0x13, 0x7f, 0x1d}, + { 0x1, 0x88, 0xdc, 0xb8, 0x40, 0xdf, 0xc5, 0x73, 0xa9, 0x71, 0x17, 0x0, 0x92, 0x26, 0xd5, 0x8d, 0xbb, 0x93, 0xb, 0xa8, 0xec, 0x84, 0x89, 0x31, 0x78, 0x6a, 0xbc, 0x77, 0x6, 0x11, 0xf3, 0x51, 0x9c, 0x8b, 0xa7, 0x3c, 0xce, 0xb5, 0xb4, 0x89, 0x17, 0x8, 0x5, 0xbc, 0xf0, 0x49, 0x74, 0x67, 0x2f, 0xe6, 0x6c, 0x90, 0x8b, 0xa3, 0x79, 0xac, 0xa9, 0x9f, 0xa6, 0x7f, 0xec, 0x81, 0xa9, 0x94, 0xc2, 0xd1}, + { 0x0, 0xb, 0x1a, 0x18, 0x55, 0x12, 0xdc, 0x6a, 0x65, 0xe4, 0x54, 0xea, 0x2b, 0xdb, 0x80, 0x49, 0xef, 0x8f, 0x1, 0x2a, 0x53, 0xae, 0x87, 0xb7, 0x59, 0xfb, 0x5d, 0x9e, 0xdb, 0xa5, 0x1e, 0xa3, 0x2e, 0x25, 0x4e, 0x80, 0x54, 0x5a, 0x99, 0xeb, 0x4b, 0x7c, 0x58, 0xaf, 0x96, 0xb7, 0xc4, 0x33, 0x53, 0x5f, 0xa3, 0xf0, 0x9, 0xcc, 0x64, 0x4b, 0x1c, 0x97, 0x66, 0x6d, 0x88, 0x35, 0x5a, 0xf9, 0xfc, 0x19}, + true, + "P" + }, + { + { 0x29, 0x76, 0x60, 0xae, 0x8a, 0x70, 0x38, 0x96, 0x9a, 0x7f, 0x8, 0x38, 0xcd, 0x95, 0xed, 0x18, 0x85, 0xbd, 0x20, 0xc5, 0xa6, 0x9a, 0x24, 0xf5, 0xfc, 0x8a, 0x63, 0x91, 0x8c, 0x21, 0x67, 0x86, 0x8a, 0xde, 0x4e, 0x37, 0x23, 0x90, 0xb0, 0xc5, 0xff, 0x19, 0x83, 0x15, 0xca, 0x1e, 0xf9, 0x47, 0xd9, 0xc8, 0x50, 0x36, 0xe3, 0x8b, 0xa1, 0x27, 0x7f, 0x1e, 0x61, 0x46, 0x72, 0x3b, 0xd8, 0xf9, 0xad, 0x1d, 0xb6, 0xde, 0x80, 0xdc, 0xe0, 0x53, 0xc4, 0xc9, 0xe4, 0x59, 0x76, 0x30, 0xa0, 0x2d, 0xc5, 0x14, 0x68, 0x33, 0x10, 0xd3, 0x79, 0x2a, 0x48, 0x31, 0xdf, 0x7e, 0x8f, 0xcc, 0x77, 0x29, 0x8f, 0x2a, 0x2f, 0xc4, 0xc0, 0x71, 0x41, 0x22, 0x19, 0x48, 0x2a, 0x6e, 0x21, 0x8c, 0x91, 0x67, 0x19, 0xc6, 0x13, 0xcd, 0x24, 0x9a, 0x33, 0x6f, 0x82, 0x36, 0x32, 0xae, 0xcc, 0xff, 0x48, 0x6f}, + { 0x1, 0x82, 0xc9, 0x57, 0xa6, 0x2e, 0x2e, 0x27, 0xaa, 0x28, 0xac, 0xee, 0x2e, 0x2f, 0x7b, 0x1e, 0xd6, 0xae, 0xf8, 0x1c, 0x68, 0x0, 0x1d, 0x26, 0x48, 0xda, 0x47, 0xd2, 0xb6, 0x21, 0xe8, 0xb8, 0xbd, 0x18, 0xd9, 0x91, 0xcd, 0x1e, 0x3f, 0xb9, 0xaf, 0xb8, 0x4f, 0x63, 0x9f, 0xbe, 0xd1, 0x5, 0x5, 0x84, 0x42, 0x8c, 0xd2, 0xa1, 0xd5, 0xf, 0x87, 0x75, 0x32, 0xff, 0xde, 0xfd, 0xd4, 0xe6, 0xf7, 0xba}, + { 0x0, 0x5f, 0xad, 0xee, 0xf5, 0x8c, 0xc0, 0xd7, 0x93, 0x62, 0xb5, 0x99, 0xe9, 0x46, 0x36, 0xf9, 0xc7, 0xe, 0x3e, 0x55, 0x80, 0xc0, 0x85, 0xb7, 0xea, 0x52, 0xa5, 0xfd, 0x24, 0xfe, 0x4a, 0x89, 0x21, 0x20, 0xb8, 0xf2, 0x8b, 0xa5, 0x3e, 0xc2, 0x49, 0xc4, 0x2d, 0x6d, 0x3b, 0x36, 0x26, 0x8b, 0x8c, 0xa8, 0x46, 0x4e, 0x54, 0xb7, 0x2d, 0x37, 0x32, 0x7d, 0x75, 0x4, 0xd9, 0xb7, 0xce, 0x53, 0x4d, 0x95}, + { 0x1, 0xe3, 0xa7, 0x8e, 0x97, 0x3f, 0xef, 0x6b, 0x6d, 0xe8, 0xa0, 0x35, 0x64, 0x1, 0xe8, 0x9f, 0x43, 0x5a, 0xe5, 0xf4, 0x9c, 0x1, 0x73, 0xf0, 0x73, 0xc4, 0xdb, 0xb9, 0xc9, 0x14, 0x63, 0xe4, 0x20, 0xf5, 0x26, 0x5e, 0xad, 0xe8, 0x30, 0x5f, 0x11, 0xd3, 0xf, 0xa8, 0xd9, 0x7e, 0x5b, 0x4c, 0x5a, 0xb3, 0x39, 0x75, 0xf7, 0x33, 0x85, 0xae, 0xa8, 0x1f, 0xbd, 0xde, 0x2f, 0x7d, 0xdf, 0x7f, 0xdf, 0x16}, + { 0x0, 0xef, 0xec, 0xa1, 0xb, 0x53, 0x62, 0xe0, 0x5a, 0x8f, 0x2e, 0x3d, 0xf6, 0x66, 0x1d, 0xd, 0x53, 0x6b, 0x32, 0xca, 0x1e, 0xa, 0x62, 0x51, 0x5d, 0xf2, 0xd9, 0x4e, 0xb3, 0x14, 0xaa, 0xdb, 0x5e, 0xb4, 0x4, 0x68, 0x48, 0x3e, 0x24, 0xb1, 0x6e, 0xfe, 0x85, 0xc5, 0x3, 0xd6, 0xc2, 0x31, 0xef, 0x86, 0xa, 0xab, 0xe6, 0x74, 0xb7, 0x2e, 0xd1, 0xdd, 0xd9, 0x38, 0x53, 0x33, 0x8e, 0x5e, 0x4e, 0x50}, + false, + "3 - S changed" + }, + { + { 0x5d, 0x5, 0x8a, 0xe5, 0x33, 0x53, 0x8a, 0xd5, 0xf6, 0x12, 0x2e, 0x8c, 0xc4, 0xf5, 0xc6, 0xdb, 0xba, 0x56, 0xc9, 0xb9, 0xe4, 0x9d, 0x7e, 0xac, 0x50, 0x68, 0x74, 0x68, 0x3b, 0x7b, 0x20, 0x9, 0x35, 0x52, 0xdb, 0x5c, 0xcd, 0x2d, 0x81, 0x9a, 0xd5, 0x54, 0xea, 0xde, 0xdb, 0x9b, 0x2c, 0xf6, 0x13, 0xb7, 0x34, 0x29, 0x72, 0x3c, 0xaa, 0x9f, 0x21, 0xb9, 0xfd, 0xff, 0x20, 0xd5, 0x75, 0xf1, 0x7b, 0x2, 0xbb, 0xed, 0xaa, 0x9e, 0x2c, 0x6b, 0x78, 0x8e, 0xd9, 0xe, 0x23, 0x9d, 0x9d, 0xef, 0x9d, 0x10, 0x8d, 0xf3, 0xcc, 0x59, 0x6f, 0xc5, 0xe9, 0x75, 0xc5, 0x9f, 0x1d, 0x78, 0xb9, 0xbe, 0x3f, 0xa4, 0x1c, 0x4f, 0xe8, 0x6d, 0x1d, 0xca, 0xa2, 0xd4, 0x87, 0x6c, 0x49, 0x4e, 0x14, 0xbc, 0x16, 0x77, 0x36, 0xfe, 0xf0, 0x75, 0x63, 0xd2, 0xdb, 0x5, 0x6, 0xb2, 0x4d, 0xa8, 0x91, 0xd1}, + { 0x0, 0x99, 0x11, 0xb4, 0x1f, 0x9a, 0xf5, 0x25, 0xc8, 0x74, 0xe0, 0x5b, 0xfd, 0xf0, 0x50, 0x33, 0x1b, 0xf8, 0x30, 0x29, 0x69, 0x11, 0xbc, 0xb1, 0x8e, 0xec, 0x16, 0x27, 0x50, 0x27, 0xd6, 0x3f, 0xa1, 0x6, 0xc8, 0x98, 0x9b, 0x7, 0x92, 0x1c, 0x7e, 0x58, 0xb0, 0x27, 0x11, 0xb5, 0xb5, 0x88, 0xc, 0xc4, 0xe6, 0xd9, 0x17, 0x4e, 0xd, 0x31, 0x6, 0x5, 0x48, 0xcf, 0x64, 0x3b, 0xf7, 0xed, 0x4f, 0xc}, + { 0x1, 0x84, 0xfc, 0xf, 0xac, 0x3c, 0x2c, 0x80, 0xc6, 0x9c, 0x1c, 0x2, 0x93, 0xf4, 0xe5, 0xe2, 0x2f, 0xa0, 0x8c, 0x26, 0x7b, 0x1f, 0x36, 0xac, 0x5a, 0xd6, 0xdf, 0xdf, 0x4d, 0xa1, 0x75, 0x4f, 0x79, 0x42, 0xf4, 0x8c, 0xb5, 0x6f, 0x56, 0xcb, 0xa0, 0x5e, 0x22, 0xb9, 0x15, 0x8, 0xfe, 0x4d, 0xb3, 0x70, 0x30, 0x66, 0xe8, 0xf6, 0x97, 0xac, 0xa5, 0x6f, 0x97, 0x4f, 0x3f, 0xe5, 0x30, 0xc9, 0x64, 0xc}, + { 0x1, 0x7b, 0x8a, 0x22, 0xfd, 0x8f, 0x73, 0x11, 0x23, 0x10, 0x86, 0x79, 0x9, 0xf2, 0x34, 0xfa, 0xd6, 0xaa, 0x82, 0x99, 0x9c, 0x28, 0xea, 0x5a, 0x2e, 0x74, 0xb4, 0xb4, 0xbc, 0x79, 0xb2, 0xf8, 0x90, 0x8, 0xb4, 0xd3, 0x61, 0xef, 0x7e, 0x79, 0x7c, 0x76, 0x56, 0xf7, 0xd9, 0x31, 0x7e, 0xff, 0x3e, 0x5a, 0x49, 0x82, 0x79, 0x9b, 0x8c, 0xc0, 0xdb, 0x82, 0x61, 0x8b, 0xd2, 0xaa, 0x39, 0x59, 0xf6, 0x17}, + { 0x1, 0xed, 0xac, 0xc6, 0xd1, 0xc0, 0x0, 0x4b, 0x20, 0x90, 0xd2, 0x2, 0x5d, 0x61, 0x5d, 0xe1, 0xfd, 0x53, 0xa9, 0x6e, 0x82, 0x6a, 0x39, 0x30, 0xc7, 0xca, 0xfa, 0xf3, 0xc8, 0x7f, 0x34, 0xb2, 0x58, 0x39, 0x97, 0x53, 0x4c, 0xfa, 0x12, 0x74, 0x85, 0x60, 0xa, 0x7a, 0xe0, 0x4e, 0x6a, 0xf4, 0xa2, 0xe9, 0x8c, 0x77, 0xfd, 0x4, 0x50, 0x71, 0x95, 0xe5, 0x20, 0xe8, 0x0, 0x14, 0xaa, 0x98, 0x2a, 0x3c}, + false, + "1 - Message changed" + }, + { + { 0xc8, 0x5, 0xa0, 0x7a, 0x1, 0xe3, 0x80, 0x6d, 0xc8, 0x14, 0x54, 0xee, 0x64, 0xb3, 0xaf, 0xb3, 0x3f, 0x30, 0x2d, 0xbf, 0x65, 0x6, 0x2c, 0x1c, 0x31, 0x16, 0x9b, 0xb5, 0x1, 0xff, 0xf4, 0xc4, 0xa1, 0x90, 0x57, 0x29, 0xa4, 0xd0, 0xff, 0x46, 0x3f, 0x23, 0x49, 0xfd, 0x74, 0x59, 0x6b, 0x7d, 0x51, 0x41, 0x44, 0x19, 0xe3, 0xc9, 0x27, 0x67, 0xeb, 0xc9, 0xdb, 0x52, 0xda, 0xe4, 0xdf, 0x2a, 0x83, 0xce, 0xe4, 0x54, 0x86, 0xdc, 0x12, 0x96, 0xc6, 0x42, 0x20, 0x0, 0x69, 0x9c, 0x72, 0x13, 0x71, 0x78, 0xff, 0xd6, 0x66, 0xd2, 0xf1, 0xd1, 0xa1, 0x5, 0x97, 0x2b, 0xef, 0x6e, 0xef, 0x74, 0xe7, 0x4, 0xd8, 0xc8, 0x15, 0xbe, 0xa2, 0x69, 0x51, 0x2a, 0x32, 0xfb, 0x1b, 0x8d, 0xd8, 0x21, 0x74, 0xe0, 0x4b, 0x2d, 0xd, 0x5b, 0xea, 0xa0, 0x40, 0x12, 0x84, 0xa7, 0xe2, 0xbf, 0xac, 0xa5}, + { 0x0, 0x6d, 0xa3, 0xb6, 0x94, 0xe3, 0x12, 0x3e, 0xf9, 0x6b, 0x3f, 0xd2, 0xab, 0x96, 0x4f, 0x85, 0xa3, 0x61, 0x10, 0x59, 0x7, 0x20, 0xdc, 0x17, 0x24, 0xa5, 0xd5, 0xd, 0x30, 0x50, 0x49, 0x89, 0x57, 0x21, 0x1c, 0x6a, 0x15, 0x35, 0x3, 0x2c, 0xf1, 0xf3, 0x12, 0x40, 0xbf, 0xab, 0x96, 0x7c, 0xc0, 0xcf, 0x3b, 0x44, 0x2c, 0x35, 0xa1, 0xbf, 0xa3, 0xe7, 0x24, 0x70, 0xdf, 0x18, 0x63, 0xd2, 0x59, 0x3a}, + { 0x1, 0x7d, 0xa, 0x5d, 0xc4, 0x60, 0xc8, 0x5d, 0x3, 0x65, 0xc7, 0xbd, 0xc2, 0xe9, 0x30, 0xe, 0x27, 0x6b, 0x8a, 0xa9, 0x73, 0x68, 0xaf, 0x99, 0x72, 0x74, 0x4f, 0x44, 0x22, 0x44, 0x2a, 0xfc, 0x60, 0x1e, 0xcf, 0xe7, 0x90, 0x3a, 0x33, 0xb0, 0x35, 0x4c, 0x90, 0x1c, 0x7b, 0x61, 0xf2, 0x9d, 0x2d, 0x3c, 0x56, 0x10, 0x19, 0x2c, 0xd1, 0x88, 0x29, 0x1c, 0x56, 0x51, 0x75, 0x4b, 0x38, 0x5b, 0x87, 0xa8}, + { 0x1, 0xf9, 0xcb, 0x1f, 0x4e, 0x2e, 0x65, 0x28, 0x2a, 0x92, 0x9a, 0xcd, 0x8b, 0x68, 0x5a, 0xb3, 0x4d, 0xa1, 0x76, 0xf5, 0xc7, 0x3b, 0xcb, 0x37, 0x4f, 0xd1, 0xb0, 0x9b, 0xc9, 0x95, 0x38, 0x5c, 0xe3, 0x90, 0x2d, 0x6c, 0x54, 0x96, 0xb0, 0x29, 0x16, 0xfd, 0x5a, 0x28, 0xf6, 0xf8, 0xbb, 0x66, 0x28, 0x28, 0xa7, 0x6a, 0xa0, 0xad, 0x14, 0xb0, 0x1b, 0xc2, 0x4a, 0x63, 0xb3, 0x28, 0xc7, 0xbb, 0x94, 0x9b}, + { 0x0, 0x1d, 0x6b, 0x3a, 0x2f, 0x34, 0xe3, 0xb7, 0xbf, 0x63, 0xd0, 0x6b, 0x11, 0xac, 0xe1, 0x72, 0xca, 0x61, 0xac, 0x5a, 0x91, 0x1a, 0x4b, 0x40, 0x8d, 0x76, 0x6e, 0xb5, 0x86, 0xc9, 0xab, 0x82, 0xd, 0x42, 0xf5, 0x55, 0xe5, 0x46, 0xd8, 0x92, 0x64, 0x3e, 0x12, 0xa6, 0x75, 0x24, 0x65, 0x42, 0x7c, 0x21, 0x3e, 0x38, 0x39, 0xe4, 0xf8, 0xcb, 0x3a, 0x7e, 0x4f, 0xd8, 0x36, 0x42, 0x84, 0x3e, 0x85, 0x44}, + false, + "1 - Message changed" + }, + { + { 0x5, 0xf1, 0xb9, 0x75, 0xf4, 0xf4, 0x46, 0xa1, 0xb8, 0xae, 0xf5, 0xd, 0xfc, 0xa6, 0x8, 0xb0, 0x35, 0x74, 0xa8, 0x3a, 0x7c, 0x78, 0xd5, 0xc2, 0xef, 0xe1, 0x66, 0xa, 0x3, 0x49, 0x94, 0x91, 0x74, 0x55, 0xb9, 0xc8, 0xa7, 0x74, 0xae, 0x38, 0x1c, 0xbf, 0xdf, 0xff, 0x16, 0x2d, 0x36, 0xb9, 0xa1, 0x7b, 0xbc, 0x6d, 0xde, 0xf3, 0x45, 0x17, 0xcf, 0x8f, 0xa5, 0x4b, 0xb6, 0x90, 0x1f, 0x42, 0xde, 0xf4, 0xb7, 0x87, 0xa8, 0x3d, 0x32, 0x85, 0xea, 0xf0, 0x46, 0x21, 0xc5, 0x82, 0x67, 0xae, 0x6d, 0x2b, 0xdf, 0x20, 0xb3, 0xbb, 0x4c, 0xb6, 0xc4, 0xbd, 0x8e, 0xe5, 0x10, 0x5e, 0xb3, 0xf0, 0x49, 0xc4, 0x4d, 0xf4, 0xcc, 0xa3, 0x9f, 0x60, 0x15, 0xa3, 0xd3, 0x16, 0xf0, 0x8a, 0xf9, 0x7e, 0xda, 0x47, 0xf9, 0x2a, 0x53, 0x60, 0xc, 0xb2, 0x30, 0x4a, 0x27, 0x24, 0xe4, 0xa, 0x93, 0x61}, + { 0x0, 0xb7, 0xe0, 0x3f, 0xd, 0x62, 0x3a, 0x9, 0x98, 0xad, 0xd5, 0x36, 0xd, 0xfb, 0xb, 0xfe, 0x83, 0x6f, 0xcb, 0xa, 0x46, 0xb0, 0xd6, 0xf6, 0x97, 0xba, 0x6b, 0x37, 0x66, 0xbd, 0x86, 0x98, 0xac, 0x8c, 0x7a, 0xf6, 0x2f, 0x50, 0x51, 0x1c, 0x6a, 0xa5, 0xe6, 0x13, 0xf4, 0xa9, 0x9f, 0xa2, 0x8f, 0x70, 0xb2, 0x20, 0xba, 0x1c, 0xdd, 0xb2, 0x24, 0x82, 0xbe, 0x74, 0xc9, 0x69, 0x95, 0x3a, 0xe6, 0xe5}, + { 0x0, 0xd4, 0xee, 0x40, 0xee, 0x44, 0x41, 0xdc, 0x85, 0x35, 0x67, 0x60, 0xf8, 0x7b, 0xa3, 0x2e, 0x2e, 0x7c, 0x26, 0x9a, 0x2e, 0x53, 0xa2, 0xe8, 0x42, 0x5d, 0x5f, 0xf0, 0x2f, 0x5e, 0x4f, 0xe8, 0xd6, 0x5c, 0xef, 0xe2, 0xe, 0x16, 0x2c, 0x39, 0x15, 0xd2, 0xeb, 0x9a, 0xd1, 0x35, 0x4b, 0xd2, 0x85, 0x95, 0xa8, 0x6d, 0xbd, 0xc9, 0x4a, 0x5d, 0x40, 0xc5, 0xb4, 0x4b, 0x1e, 0x3a, 0xa3, 0x96, 0x54, 0x55}, + { 0x1, 0xfc, 0xba, 0x47, 0x81, 0xde, 0x65, 0x6, 0xf7, 0xc3, 0xf2, 0x65, 0x21, 0xf0, 0xe0, 0x36, 0xb5, 0x22, 0x5f, 0x65, 0x1e, 0x69, 0xe1, 0x15, 0xd6, 0x78, 0x4b, 0x21, 0x76, 0xa6, 0x66, 0xed, 0xf6, 0x9d, 0x75, 0x96, 0x27, 0x46, 0x84, 0x0, 0xa7, 0x3a, 0x13, 0x6f, 0x59, 0x9f, 0xb8, 0xdb, 0x46, 0x43, 0xfc, 0xc1, 0x6b, 0xde, 0xee, 0xf6, 0x38, 0x4a, 0x18, 0x75, 0xe1, 0xc8, 0x1c, 0x36, 0xb9, 0x62}, + { 0x0, 0xa2, 0x1c, 0xfa, 0xa7, 0xe1, 0xee, 0xe, 0xff, 0x7e, 0xfc, 0x3d, 0x7e, 0x93, 0x63, 0x78, 0x50, 0x2, 0x83, 0xb0, 0x6, 0x87, 0x36, 0x30, 0x70, 0x97, 0x44, 0x83, 0xad, 0x47, 0x4c, 0x58, 0xc6, 0xb5, 0x5b, 0x77, 0xf6, 0x78, 0xd7, 0x8e, 0x7c, 0xb4, 0x4d, 0x97, 0x45, 0xf7, 0x93, 0x94, 0x65, 0x9b, 0xdd, 0x26, 0xb7, 0x26, 0x63, 0x60, 0x83, 0x84, 0xb5, 0xae, 0x9c, 0xac, 0x1c, 0x88, 0x8d, 0x13}, + false, + "2 - R changed" + }, + { + { 0x3a, 0x8d, 0x80, 0x66, 0xc0, 0xbf, 0xc2, 0x87, 0xe1, 0x43, 0x4c, 0x24, 0x30, 0x26, 0x11, 0x10, 0xe3, 0x3d, 0xe, 0xbf, 0x69, 0xd3, 0x5b, 0x65, 0xb0, 0xa2, 0xd7, 0x7, 0x63, 0xc7, 0xfe, 0xc9, 0x93, 0xde, 0xcf, 0x88, 0x31, 0x74, 0xf2, 0x16, 0xa6, 0xc0, 0xff, 0x62, 0x2e, 0xf7, 0x77, 0xc0, 0x78, 0xca, 0xe5, 0xc6, 0x72, 0x4f, 0x9a, 0x2, 0xf, 0x8e, 0xc0, 0x70, 0x41, 0xdf, 0xcc, 0xa3, 0x68, 0x9a, 0x8a, 0xbc, 0xce, 0x10, 0xef, 0xae, 0xa, 0x2d, 0xa9, 0x49, 0xb8, 0x74, 0x59, 0x58, 0x6f, 0xd0, 0x12, 0x80, 0x5c, 0x54, 0xf0, 0x80, 0x7d, 0x92, 0x7d, 0xb, 0x64, 0x59, 0x5c, 0x6b, 0x18, 0x70, 0x5b, 0x49, 0xd4, 0x97, 0xcc, 0x2e, 0xe8, 0xb8, 0x67, 0xf9, 0xe5, 0x8b, 0x13, 0x82, 0xe2, 0x50, 0x65, 0x50, 0xd, 0x1d, 0x74, 0x42, 0x94, 0x42, 0x83, 0x34, 0x66, 0x57, 0xa8, 0x35}, + { 0x0, 0x1b, 0xb7, 0xc6, 0x23, 0xfd, 0xe4, 0x1b, 0xee, 0xc7, 0xdd, 0xfb, 0x96, 0xf6, 0x58, 0x48, 0xc2, 0xf5, 0x2b, 0x50, 0xb3, 0x95, 0x76, 0xbf, 0x6, 0xde, 0x6c, 0xcf, 0x15, 0x7b, 0x8e, 0xc4, 0x98, 0x89, 0x52, 0x87, 0x28, 0x48, 0x9, 0x28, 0x23, 0x63, 0x0, 0x44, 0x7d, 0xa7, 0x17, 0x1f, 0x58, 0xc8, 0xf0, 0xe0, 0xba, 0x8f, 0xd3, 0xe2, 0xcf, 0x37, 0x8b, 0x88, 0x61, 0x9a, 0xa6, 0xc1, 0xe0, 0xbc}, + { 0x1, 0xf8, 0xb2, 0xa, 0x1a, 0x7d, 0xf3, 0x19, 0xbf, 0x78, 0xc2, 0xce, 0xe0, 0x35, 0x81, 0xa1, 0xff, 0xe8, 0xca, 0x51, 0x7, 0xfb, 0xfd, 0x40, 0x76, 0xf, 0xbd, 0x5e, 0xf5, 0x24, 0x7e, 0x2d, 0xf1, 0x9, 0x2d, 0x5c, 0xaf, 0x50, 0x4a, 0x9e, 0xe6, 0x53, 0xde, 0xd2, 0x99, 0x5f, 0xc, 0xdd, 0x84, 0x1d, 0x6a, 0xf2, 0x9c, 0x9f, 0x72, 0x7, 0x70, 0x5, 0x6e, 0xbb, 0xc1, 0x28, 0x70, 0x5f, 0x68, 0xe6}, + { 0x0, 0x0, 0xdb, 0x4c, 0x31, 0xf3, 0x16, 0x91, 0x22, 0x95, 0xc5, 0xb9, 0x50, 0x6a, 0xab, 0xc2, 0x4b, 0xb, 0x2d, 0xc2, 0xb2, 0x35, 0x8e, 0x6b, 0x2, 0x31, 0x48, 0x88, 0x9d, 0x92, 0x0, 0xbc, 0xf4, 0x47, 0x62, 0xe8, 0x85, 0x75, 0xe3, 0x59, 0xb4, 0x86, 0x8b, 0x2d, 0x93, 0xba, 0x7b, 0xdb, 0x24, 0x80, 0xb, 0x9, 0xfc, 0x22, 0xea, 0xde, 0x7, 0x44, 0xb9, 0x83, 0x2b, 0x71, 0xee, 0x78, 0x4e, 0x9c}, + { 0x1, 0x8c, 0x84, 0x43, 0x7f, 0xac, 0x7c, 0xd8, 0x20, 0x99, 0xa2, 0xa4, 0x23, 0x0, 0x84, 0xac, 0x27, 0xec, 0x7e, 0xa9, 0xc9, 0x2e, 0x1c, 0x9d, 0x9a, 0x71, 0x29, 0xd, 0xf9, 0xb3, 0x7d, 0xc8, 0x81, 0xf9, 0xba, 0x59, 0xed, 0x33, 0x1c, 0x22, 0xdc, 0xa4, 0xb2, 0xcb, 0xb8, 0x37, 0xcd, 0x91, 0x6e, 0xa, 0x78, 0x39, 0x8d, 0x2b, 0x7a, 0xaf, 0x8e, 0x88, 0xf1, 0x13, 0xa9, 0x42, 0xbe, 0xac, 0x48, 0xc0}, + false, + "4 - Q changed" + } +}; +const size_t ecdsa_p521_test_vectors_count = sizeof(ecdsa_p521_test_vectors) / sizeof(ecdsa_p521_test_vector); +#endif +// *INDENT-ON* diff --git a/test/vectors/ecdsa_nist_vectors.h b/test/vectors/ecdsa_nist_vectors.h index 223ecb09f..c38fbd8b6 100644 --- a/test/vectors/ecdsa_nist_vectors.h +++ b/test/vectors/ecdsa_nist_vectors.h @@ -28,9 +28,33 @@ #ifndef ECDSA_NIST_VECTORS_H #define ECDSA_NIST_VECTORS_H +#include "vectors_config_check.h" +#include "atca_compiler.h" + /* See https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/digital-signatures */ -typedef struct +#ifndef ATCA_NO_PRAGMA_PACK +#pragma pack(push, 1) +#endif + +#if TEST_VECTOR_EC_P224_EN +typedef struct ATCA_PACKED +{ + uint8_t Msg[128]; + uint8_t Qx[28]; + uint8_t Qy[28]; + uint8_t R[28]; + uint8_t S[28]; + bool Result; + char* ResultText; +} ecdsa_p224_test_vector; + +extern const ecdsa_p224_test_vector ecdsa_p224_test_vectors[]; +extern const size_t ecdsa_p224_test_vectors_count; +#endif + +#if TEST_VECTOR_EC_P256_EN +typedef struct ATCA_PACKED { uint8_t Msg[128]; uint8_t Qx[32]; @@ -43,6 +67,44 @@ typedef struct extern const ecdsa_p256_test_vector ecdsa_p256_test_vectors[]; extern const size_t ecdsa_p256_test_vectors_count; +#endif + +#if TEST_VECTOR_EC_P384_EN +typedef struct ATCA_PACKED +{ + uint8_t Msg[128]; + uint8_t Qx[48]; + uint8_t Qy[48]; + uint8_t R[48]; + uint8_t S[48]; + bool Result; + char* ResultText; +} ecdsa_p384_test_vector; + +#ifdef ATCA_TA100_SUPPORT +extern const ecdsa_p384_test_vector ecdsa_p384_s256_test_vectors[]; +extern const size_t ecdsa_p384_s256_test_vectors_count; +#endif +#endif /* TEST_VECTOR_EC_P384_EN */ + +#if TEST_VECTOR_EC_P521_EN +typedef struct ATCA_PACKED +{ + uint8_t Msg[128]; + uint8_t Qx[66]; + uint8_t Qy[66]; + uint8_t R[66]; + uint8_t S[66]; + bool Result; + char* ResultText; +} ecdsa_p521_test_vector; + +extern const ecdsa_p521_test_vector ecdsa_p521_test_vectors[]; +extern const size_t ecdsa_p521_test_vectors_count; +#endif +#ifndef ATCA_NO_PRAGMA_PACK +#pragma pack(pop) +#endif #endif /* ECDSA_NIST_VECTORS_H */ diff --git a/test/vectors/hmac_test_vectors/HMAC_sha384.rsp b/test/vectors/hmac_test_vectors/HMAC_sha384.rsp new file mode 100644 index 000000000..8890e3409 --- /dev/null +++ b/test/vectors/hmac_test_vectors/HMAC_sha384.rsp @@ -0,0 +1,2106 @@ +# CAVS 11.0 +# HMAC information +# Hash sizes tested: 48 +# Generated on Mon Feb 28 20:38:43 2011 + +[L=48] + +Count = 0 +Klen = 50 +Tlen = 24 +Key = f16ad73790ca39c7f9856c4483202e7f8e0c8283c7d50d6da79cc07d3dc7b76c2ef76100fa3ae2df8083b5a1c5579628f1c8 +Msg = 9870007654ebc3d28f883bb832e0b31700f923d9c9b10168e0605971cfb920e848f1c64c5f240a2cf7f412ea7a73bbbfce432eff84fbb49e52cdcbf4c36679bd2d16e064e4311381adb528a0752c8e4443d4a12b6cfe7cd406b40e3f9e9e71f42e27764649db85d99913a4628bd5d5ae49f6a5e6e9810211e35d4ddac929b093 +Mac = 79e24a203bf42074e72c8b4a0222aface3e8ce7b4004cec2 + +Count = 1 +Klen = 50 +Tlen = 24 +Key = a5709ba5529cb9a1a227f0be448e119a356f92e13efc3463beaae46aa929df4ad1991a3964fbe161b6e5be34417a9c00eb9a +Msg = 4f569d60405663ffd4893777cbc37155d403e2b0f5485da42ca67503579889465198feca5eedcc39c9c53c45cb83f09daf5a2319341b3238334b5bcd8179c5f517cec14c70e6506133dee56712af6c2df2ba8a504ca427afd3632a1f57998360e9216f5040e8f75f5bffba4368eeedede54aa0bb058a43ef551668609fa1cb6f +Mac = 247eb51a397ba369ecba43b95a46a933cff0b1005714f0e5 + +Count = 2 +Klen = 50 +Tlen = 24 +Key = 187c047e4ed5490305225355fbb381682932245b01dae04df5e456723842ff66c8905bc1ac484ceb7a35bc321d2a8619d5f3 +Msg = 16263dd95036128119d781865e4f818a867b5066551e711f1179f616e41cfb7e82fb73130bc427093370fb43a01973c6940b776dcb1d53dea74202bc8a5bac1f834f6d412e5e587ad5b2bc6edb37a5855bada69b0cfcd6f968c719840d43a135634ab4c97fabafba47c54b6dd7541fad248a6658df6203589d31c2d5347de1a9 +Mac = 74118d1b4c60c9dd7029829e27987f40aa9fa54b7f9c0c00 + +Count = 3 +Klen = 50 +Tlen = 24 +Key = 07c64541d0cc4c2385dfc4e7f49da4396d2c4a8ddecec0583db63d7f261bef0fc68af730f780b654ac3847b490c24cfdea55 +Msg = f7457e98685564e3d36b5a9a2359394398ebeb2e0f1dd14d848b6245d52915c5c83481175069c3f50c74219d11abed28e9fcab17db24762f6d229f8728ec98df9b601033a37d6090e9d32627ab382fa0c0bd9bb0d6e13beeff043ee26c1e0d5f77b07313e7fb015d7071b15e7a69c9532416022287baea323f17878028263df0 +Mac = 22e16ea2a8a7377389f23f92e1b689555015f2a5f2e3c87d + +Count = 4 +Klen = 50 +Tlen = 24 +Key = 365b145e507e9752408829c69c8732da163514b3517aa61df331e474fc2fe5c456810d2facf6838f80dee55d78103bd2f932 +Msg = 637d2092a1f5620fa2ca9f65b1a722c9fe92307a9ed62f52d4410e9a8f90e0233328ca929c0720fc61f9cbb3550fee5f544dc9503ca3dd12391f5042466094a1f04e44675d084eda8e1e571ee1015b4fdab794cd22d39ed7d0a5d85ce8ae0d0d215654b7ece234d0b1a00c505c64b2c218385b9a5a50bbc9223c6d8f7e619490 +Mac = a016274a2e3202547be4f9a3830b2b8eec39dcdfd1a8ca7c + +Count = 5 +Klen = 50 +Tlen = 24 +Key = fd0bcb3f7ce9612ed98f7ef27f0908a8a40801197c415b3eac100e040161694c62d0a536030fc09fdc8889e85a44f7f9540c +Msg = 2efa4e54ad137e94bead8e127ffa33bbf778461a572422297feb4e67c4615c2af1b510378be5c5905a2e0d8d24c7982ebcce57b03c83e05e8eb415aa3178007c392002ca986b2d699df9ee23ba02ef098a483b0a124aa4c548bb629cd132fc0a0f236c365b0e7ec88ff679fbc81501f36ace3c5264e33406b5e87c642ff8177b +Mac = b5d46ee32b82629b49bc47f258cfd578adb86c49966bc91d + +Count = 6 +Klen = 50 +Tlen = 24 +Key = a8de6c601fbd3de3f36fe7e71a99c8648108cba90ca38df0d89ebe34c3f1c9472e09b71f01bd5070f0838481fde40a383e2d +Msg = e710f78f8a4159c802b3b5df8612177aafe301e62c68bd14b8c3f2e2495d769c8a8963c38c656d0db80172ac09c453d3780b0377b712dd5321183b2ef2be4460b3b10593f988c4c74ff0909971061dc4bb04cfe8e020158adfb1f85c3394f4bf4ace0687397206feaec6372b26a11d5460178ec111580cc3d9d652f576a62dc2 +Mac = b087712d244c70b4686f3bf30db4460adf065df56d874a5b + +Count = 7 +Klen = 50 +Tlen = 24 +Key = 01e5be580aa049c2eae411e93600fbb0921b6296d1c85ce85edb3e36da7a6203067727c0e4dd3afc19c814d5967ac4b277ac +Msg = dcd732ac494218c4e5025da961535c1519716fd24601bd3575ac53e9380d77ed1bcd38e0d90c4a7dd0031162b3e8fc157f121448b05ed55cb4d13c25a07f21ed22abc7bbb62fb2d51d1fb8830ca95b16213f56291af976274934ab0d43805f71d9b906c44973f7d4b59b7a94d35c2220e7405dfcee98499c1c1dc92a89d7d983 +Mac = b0521d21418f6eceaef21f17918a8d95050e2ff17874f7bd + +Count = 8 +Klen = 50 +Tlen = 24 +Key = 0e9d0054cf2c1ce99b66cfeb80352db2c7ca6f201b353cd5ed3228a116467b3fbe0b33407dc84c45c1453e7170dec81eced5 +Msg = 96ab1d64acad8cf69651c13e4eb42d7382e38019f3a927771ba6134c12a1bdbeb2206793fa35a4a3b09a1a8d4a0087aa0fa5023f7a2584f7df92a69050c6acd4c2f8c3cb6c8e872f7032c820bd288e1934df5a230ac6af486d60d14b6a9bcd960e5eb974cb613d801e41535e6fd44aa839ba112b6a34b2540d391de526c727ec +Mac = 1f5f98a2e9901f755dce5ab0e9e485e3a53c87d7621e7fad + +Count = 9 +Klen = 50 +Tlen = 24 +Key = f755ecfe7773f5fe6a044b27ac3ed6108ffe98092ec69845fe011f3fa68f2756117d11bac114968c66160041af449a486023 +Msg = fea931efe3ebd8f719a6d9a15487b9ad67eafedf15559ca42445b0f9b42e7089cfbd62154160cd19aa086eadd12e6ba93b148d0cfd4da99fce7f5fd5606807f6f11fe97c1d9cacbef67b12cb56fde2997450255fb610943fc60d5228e84fd7fb8b572cec1da85e2c24862dc58bfe04c539262e9ee9a646cd3577efbaf3ebc6df +Mac = 6f08776f8d86fadaf681c32a4f7b7cf639a7cdb5f8dd836c + +Count = 10 +Klen = 50 +Tlen = 24 +Key = 79c92036d1d9e350978b077b993ffab6e59f4ba997281a44efe6cea4a77e06368372d11e29a121da330d7d2283e1f713d6b3 +Msg = a62bf0d3ffaff7484b0f493517357cee3635a444097fbd57fe5849ab578b397e2d5b1159b4bd48e6c0c4ed01885d9111aa3c60997016910a521101dcbc791adc11b4fac8ef78d119b53b8b2042ebb05400e088eb220f82a72980d6f3ad026a2e5a1df34739485c8a305c6bb9cd49a25f3f076361a5d058d68c8d1218b28ef01b +Mac = 6d8915109cd5240f4c1e44c5b303aa1b9616f3a256742143 + +Count = 11 +Klen = 50 +Tlen = 24 +Key = 314c2ab1ad359b1f606372aeafbecd98415c39c6a89874874364788862e0b401ac2b9d2cbe7865fb15650a0a2e8993d3eb4c +Msg = 557e8462a2446b408f2ceb5e9ff9c546c91bc072298cfc57f6f883a2b42021c1ab8076a5972f49c6a1081f688e070c1d37f5ca8c39480870ed4504e49b675cddea0422f89b2e2e7677d8b884863926c0827622fa8b7bf0371c29fefc3eb7bdc9fc52b0e31607c356fae3dd3bef59b83794e3f14489ec5bb46cee997307d8ec8c +Mac = e30f9c9e38b08f587b79c8a64ba5e928eb6743329055ca79 + +Count = 12 +Klen = 50 +Tlen = 24 +Key = 865aa6d8aedb7a9de1fc289b0d42361204891e652deba11e79e35f3199b2a5856f0286b0c2ca2d03357171c67a36aac4c3cf +Msg = c59f8dc2db55c453c403bf91bc44bf882f27a76329d40a320e7389ea8b495cadcc242e4cf0fa2e0bbacd63a489d13f8e8ad1787e2ccf132fd4ebc25fd3866f1a95a6193a1a9cdf2faae55afcc54f30825a5ce60139ebf6dcc915229cfe56073886edf5944385fe47fe144da15a04baed06919bf33772dcc156bb52abf5024c91 +Mac = 1e4f3de118bc66b4f15e878655d902d51d3ddec17b5b6886 + +Count = 13 +Klen = 50 +Tlen = 24 +Key = c64a74849e9c2f805d89325b5f0472c6e36ba91d2514a199c72aafc775b77d39c9010d7b6c1afb487fb303fe3931c250d103 +Msg = a87050f3761f3d88e5823f3dd3d1439fa7aafddde157222df650d86c5a006b04decc41133c5210caf0ee4e134a83e976c278393d8b0033d66b9fdf7ac9ea0c0c088e42441393f80c39e2072a3c055f20a42ff850597c0c64717984ed47e7b04acdbc3acc236b5d18686552ccd0e00b65f6d724607452179fb2e7af0ffb81bf88 +Mac = c26a8cbc47f328376fb6a315206ffa5b0afc8ef2e7c007e3 + +Count = 14 +Klen = 50 +Tlen = 24 +Key = 4ebc24048c2d89ecd39db53ab1e85ce317d28cd118b08e35ee650d1f3e90794c9d04ae3e5279d1925d817b8fb9bd1afbdf50 +Msg = acaae447da1dd1ebf0167788ab6c1fd2428a58b14ac4f539d7eb55dce51ee7def6e4ec0afc787fa47864d39ee451bd0e4f1e72e0472f91c8fb08647ba11a631f16dcf900c41e8b84c99bb76156cdd90d5405d4774eba0ff48b21bd7c7aff621654bc9291fcb8fc752ae2a839c8867db69c6606dc280d76a4ce60e9453876ecab +Mac = 05a0fc70e839f7697d8e9a2ca10939bf56c38ed77bd9b606 + +Count = 15 +Klen = 50 +Tlen = 32 +Key = c2f2f7985728b677a7ad062dd9605a2c24e7cdfa86986f35b99adcd4634714af8dd5864256366eade83c6100ac0126b6ba86 +Msg = 35af2ea167e56c8421cdab1b9fc99be4b85f74c706d43a4947fc3f020350e9517041b54e92cc7c00a64ff6d1c19b7c3eb54a12d33453a45738db9044a14e657a20afea33552c633a34f60f58ad4ff50f8ce5e18b9e5ea9d61534b44b2dc3bd4d10a0d539f72da798936a009aab0e8fc006d7e9d88b1ecf2ea7aeb401efd67a34 +Mac = 6e49e4aa01da45cc5ffb71569f257ecf114fe858ba9590afc23afac9c0d67f52 + +Count = 16 +Klen = 50 +Tlen = 32 +Key = 8f239b06fc6678be26307dc702f854f6a3d0d980f6457304af87a5cc83cae05098eb9cfb3a57a732cf29bc930d92577a6a7e +Msg = 35b127b52a9b4aece978ad17aaa700b547b17eab59da27819ef650ce9f7e5ef18fe3cf0275227a098e99176dec1901af643c3b57a7f9b12faf75c1b05d1cfaba60f12488582280e23be05194f86d9a205b772ab031a4d64eac6e06570931732d6f822e2d1bc3e5e1baf4627616cc5470f509529c3e041d465e8825adeae44fb4 +Mac = 4a13783650cb96aa0dcb4bca10ec30ee2a9d3768f2b6f1dc626f99545efdefe6 + +Count = 17 +Klen = 50 +Tlen = 32 +Key = 299b37b8a63c49e53a6d2d174a9203028626b1ffb564ce5eb547bffebdb51f1ce6f76569ea6dc05f2b8046d4f7d74ed00ace +Msg = 8c886d5c25bb1ac4e1e8ac0c59da0d7f746418a47652b7cb39a048e6b9ea469ad7242596568b7d242adb6bfdf2c33562c3962c682743d79465874da70361e3bb8ac7078f89976c20dcd068792e029acbbd03cfc05de4260dc0237347f422e2f72dd8ddf0c5c72fe0812e6926167f84e3ec13c954211dee5fd1dd826b95168b75 +Mac = a38e187371f1d2517aa4639975e1d2115c288d22968459019f8c7f8623254268 + +Count = 18 +Klen = 50 +Tlen = 32 +Key = 136933635a4f9252a65ecdb0a266fe7a68e935d597db26f5a6a61e3d78713ca830a2dd6746a158ccdbdfec664918f66effd5 +Msg = 1cd86dbe49225fc2f82758f53dfa3696ef66a7645dd284a93d686177e5776232be15504ef508eb5a73e7823e107cc2c1036dcc4e9d1b8af738cb42ba6a046b037e37c07324a694e0677e659de046b3fb297d120f957f7fb61ea9f0d79fbd2fe84488e7b43ec2ff5bbb35289a1522b24c49e0a431acc60befd94b9256ee6c53e8 +Mac = 3e92717865123dcbc7be18c72522aad889c29dd2afa16d30f0ad68cd9640bc84 + +Count = 19 +Klen = 50 +Tlen = 32 +Key = ade0cf1adfd3a4d83465721f9002c9cfa1ad70220794aae3b9e8b9dba4eba18d954b2e2358ae38a7228e26762c47b1f2a16e +Msg = 97362855760a948f87da5dcf39a888d0f194c75000ff045bd2ef3ecb67b5941007ce9f2d32080503d7e54bd2c644ebfd663ea70dab4f1cf943b69aa5101e33a8db7d1252473d0fee039a8044444b51627364579c227be1d2450990f19f1469bc7a0b29cd9bf2d8d675bea12d9d03e1887ecc7e054eca7a6d41b2c8b9fce05ed5 +Mac = 2eb416c1063b6da59838f3a6077eecbde42e4cf3d0f36723122e2d8794128703 + +Count = 20 +Klen = 50 +Tlen = 32 +Key = 5ff06d199ea158a07130d2ff2ead78eefcb74313354a0b790fd9493f7c9d218d4e2ca0cc9f4d4217700bb7ec9008e628c014 +Msg = 51555f744e6369f81b30a4a0514486df254f1279e0c7f1438fd3c32afb68b777dbb1595249b5ac847334798193d1e6a521774abe46f540cb95ebfb03f6ead919e2d73abfd690926901d2bd53405b93c54d4bbd9634d0c7ef06027551d00c5bd9ce8da8c3dd3e432e2fd4191e4228b5c7139511098fa1ab374ae0dc1c73166540 +Mac = 3e8de7498a8cbd9df8dc3f5dd825b0ee0899e226cd4c7cce1d3399ab9c558fa7 + +Count = 21 +Klen = 50 +Tlen = 32 +Key = 7a136c9d47c743887b92ebb6c5792769b0e8868dcb479ceb07cf93a0609ce3cdbf035d911f256e34efc4a2a5b85667270058 +Msg = 402aaa22c009335112abbda48e20e9c4828a1c131976839d816d544c4cc5575b17bda60c6acab19ee02b847988c34dad8a28189a0ef8def0596cbedb392f8a77a470858a9c366b7255f3b25c9a5d10b76d793de9eef8fa407ec7522b23e220aa2e69d1031cf56bb7bb2cceb48e933bcc71a412668021e07336a798a4d28621da +Mac = c0a992be294eb3414e4603e213de66b4ba8af1f10c602cc126b1a5a63ca008e3 + +Count = 22 +Klen = 50 +Tlen = 32 +Key = a03fe1eda0f4dceb1f517f17963538fcf913c03ded53f01e36f5d6466e7808c4fdfa384f45a009d21d382128811d7f23875b +Msg = a2350856c94b669d115dad9213f54fb0effe9adc86298cebe990e865109a8988d01ef79007cb38361ac7e977a1968d96603e24647aa800bfe14ad45911030ebbfe4666894a7bb707bca20edcee3a01164561436f263c75ce67993e1104d39d0a14f67ec7fb248c17e038474962a8563786b01e84f4ad932164c74e1653d2e17f +Mac = 0d0767dad7dbafd8174d1a007e1942af5a5c4e1fe7f85c092b446ba078ccc7a0 + +Count = 23 +Klen = 50 +Tlen = 32 +Key = 02c1ef58b09ceafe3bc94298c175bee5d875307c8b369d60a0f79ed41d3506710a67c57577ec0d5ec142b3b81278d73327e6 +Msg = b25347513090a731d128b0deb2109986d4948a7dd03ef53dc6f92aac9776269d54cfac98f66a98de4f216fa8409f3ab02d0d95f2aeef03b4874884c4db056a019c98681c46e4eca0cd59ae30d36089101ff98be84ba248c4bc7c735ed8a9afa072f8a26589c44b80331996ffd4192eb1939e93e50f216c754ddb1e03f6299d83 +Mac = a4063a744763458ca4d03ae156394a0443967b2c4df3bf111be045e06be7322d + +Count = 24 +Klen = 50 +Tlen = 32 +Key = 177470b4f10e6e95f548296d9b0fe73192a3ffb0faf6a71cd45507c6b7499229c4c0952adc68109e105cc60d580290b58833 +Msg = e9168c659c63b6f40523c90532bae743f24feb2e94814b6df2554365af73300abc933af5213235b8fa89c96ebfbfd196c95e02211204cdc93d5b86a5d64ac5fada6d0d557ac3abd61ca7e1cfa302448ef0be6376a87ea955388c85f11712c7e44b8e4eaa2f80e0f97365595064e908d36e595656df57a8b8edd18772fb34ff6f +Mac = 2b9910ed9f3f57180605b15f33e95d4ef40b09ee7ef7e71340cc4449c35ed86a + +Count = 25 +Klen = 50 +Tlen = 32 +Key = be7a9fd43c1e987ad10b0ca6f3ecd067c961d286489759b89c1b8d17c9f039d392dfd0259a0eae85c9d4a11df1cca87db128 +Msg = 7222bc21c60c8b4cc2e4e3e746964a70a7b95440b079c519e6d4f6fe100a7a47f74e00f46bc27b4286a2817c35bff114f330d9f2d844970cd3bb3e3734353b3c6dea382f199c40fc3dca2443ce271e66744ab5e08ea7e0d876be6ef50692a5755b5d2a79d88221a36ec394e31bb4198eb16fafb1d98aeaa4574650e290090217 +Mac = 15f3f5e9d459d1cfdec6f183d162ad32bc93864ac7a5ad9c40d8efb11e327619 + +Count = 26 +Klen = 50 +Tlen = 32 +Key = d7d2dbbe4f6574402121e53a88295b7a2e4cf2f342ce70aacb6b33d33c996836480e7ed8f782dad8fab6cd973cb5c31bb959 +Msg = a927bfb3d1f4c0b20fcbca263af59047bdfffca8ecbd215e988d7264e0e0313e4bf72add14eba0c3c5f0886707daf5dbb9e1d4ac3fa1d90a1d65b928c4a49ae6abccc7aea23fa99b649bf3e16b3f1c69080b12bbb2662d219f86610991ecb9acf32d00ed24f8c1841355735b0c2bed38d105209ded1504ed457ad3cff0be76d7 +Mac = 43f9dac7fb0f505ae19400b4c74ec21e352bf907a14f9927a0e78cd5ada3b5ed + +Count = 27 +Klen = 50 +Tlen = 32 +Key = a60727ae52ecf7fe66e99a8aa3c58879ebf141da5e1792dbc2f5143c286cf703ccd4fd703e93c933bfee5addee1fd395a4a7 +Msg = 8cd3b3e412bada22812f7b81dcf7d6937bdc21085ead7bd1c2872185f253e4036090db59f45355e4a48b11b9458ab244a0c16d2fc9cb0585acaef918e95dfc20e281a5241178681ea09ec5da33ccbf9f091f901143fb9b56834fa278b91a390a3a2e7a0f1334fb179cf0fdab50c6e6ebdb7df2767544258a6ff2846d0b92840b +Mac = 9da04e2dfcccd9db25c9f8566879c0aefedf0bf7a934fdb8ff7b8fdbb0568a04 + +Count = 28 +Klen = 50 +Tlen = 32 +Key = 73adc132087af20b6ead6ab3886c412f52986af87109e45b0f1b3420e569126a99d863de4bd867076be634f9cd556335ff4f +Msg = 5bbeb367c6a6bb49682556772657bb9817c9d33e953cf0c894a6bc87337a701f91294630e2e93036c2b5caaec8958d7b5f1f4687d13ec7ada532ddd72bd88263552c53ccc80c4486333f9229e0b5f9d2891028c66c647259a13bc60facdde1004fcec281a2975e0065c99630944066673ca55f448e36579431ca5f76dd0ff5be +Mac = 12153d31c6c4b874095ac70bdae80b01528d86aa64cdb7ec9a169e5dac2eb0c7 + +Count = 29 +Klen = 50 +Tlen = 32 +Key = 6dfd83804a57e35a1247807a0c828e54b32eea5f72960169ac23ee2dff88e227ca3cc9a7ec2d2a25cfb34fd4a6c2a779f265 +Msg = 0e9913001b537f335e3cf67ac5918f20c01ac83a5eb8cbdeb33ef0907c8182fd06b3c6ec4bec39715e0a1a630abb2811b6d8ad318cf5bb19db36b632b96412a9ec3f5e670b168244e096457711e01251ffdefb2cefd6fe9e683f87f2dbd437d88ae8e45ba2f9e114aa877f9d2126d34963d3ba12cd841bd321036cb82cfb78f2 +Mac = cf51592da0cc19c255abda08e6f460e011556f73b5ac0add69dc46e8ce644fb1 + +Count = 30 +Klen = 50 +Tlen = 40 +Key = 1ce7e20abbdcd1154d4b536714ff534a01b8e88c78da34d653638c39291fd80ad01f3df02067fa3bfae7907789ad2641c858 +Msg = 7cd750b5c9b2bbc3ee955a4f4fa7c956846c8b1b52eaa06fd90a5a300e426c106c714497e70a9b6c22754ad0e1b25f6bc140704b273d2f2a76ce3fef85c1467850714497edea235ac24e8f90f678078825de341c58bc7aee346fcef2711ec72d8ea0f7bcc39a7b1738e8d197743fea3618108097cdafaa467bb4ae40bca216b6 +Mac = 729a167f1986cac53ff3e111ff82f2a77b573d0863e1a3aeaf00041a03e1430188a202bdb7e9bfd4 + +Count = 31 +Klen = 50 +Tlen = 40 +Key = 362bc440e5dac16a4369581c0cb5be45bf4f170847873d6cdbc9bd55232d23b39c4978f93d4a08d15b43690dcac4b8e145af +Msg = 1af3aedaa8fac55157f30642a00258102dbd482198e0f13476411ff59406b4ce80154a014bcc19f48ef31bcbabee6f3c5537fc9f530c56458065e50b1729442f2da1e7627f2d011e6e36a43948632abbc910d5ede2fcb2b2b841c31af08a5c352a80ce25cb85437700a5e9b400c95332912e1c30cd16cd2226be004aa88fc688 +Mac = 6467e5a690bd32e157cf8ce674ac630b74ce32a78e8f78415346c00c3060a4a26c40c3e2eabd80a7 + +Count = 32 +Klen = 50 +Tlen = 40 +Key = 91a8c08f4f34073913e540eb276bacf07d7e6fecf317f2b8d5e1866da3ea4abf159f4e8d5df7f8b5aceea72df7359750fb28 +Msg = 6e0bf8d8716cd86b5b00652a308be299715df023eed305bcdc201bc5274da5300a7fc7e4dc79c6632d61beaa11c79359bce329134f1ed828f2d51a712359877c4d3a04e99dc5371411cb3ef5d2a4a044c37483e05aad2071afd5754cd28a399862c315af5b5811c730c54dd21a2bf1a3af976651b687c7e03aaa921edde8a4cc +Mac = bad0de1a7ab01eb36a28a67d0a9488a873a82770d5a8c30e4253e04af51c31bb131da8aab4ecde2a + +Count = 33 +Klen = 50 +Tlen = 40 +Key = 31d63a82fe80439196ad230542cf8c9474deb07b00b20f0b88b08e6538a8ca82b4feab764f083cf57eb8ba168c7beb578f60 +Msg = 4e9d424c31a7441f6d16d41caafc861ab8fe3c002d66ec7d5073a3f936f3cacb2b14a9ac5478296b9287dee3a809442ba1f4490c6c820cb8ca87e5b86a02a52751f21f1e806be76fd1e8599623e3ddecb6a36a1ed85649dec25f1cd8bdf11ee889ddac8afea80592f4e14e1d61b1d9c7c1b4a61ebb072a5701a3504078e9be76 +Mac = 00da1f3b95139c23cf91730b5aacadb0b6c492a6b08765ca7949c315a792d86bef38e7a747486cb1 + +Count = 34 +Klen = 50 +Tlen = 40 +Key = 917a698c82f44f19573b645c4879b8730b58dff4edc6a0d321f5f18658a5246692a55b59339741ae59f5fc486d515dfff8e1 +Msg = f51086fe78150fe48bd1415a4785acc05ab80ef00b2975ce7807a4212264b8a1ace80b50e0c2590ef3e421680a704eb2fc6d17555abf2469ad56f287fea578d89c560b72193c7fe596898f1040417e3a1beeff5eff9653c5e0eab1da52c0ea3b4bc34d0c2b69c890fb2651faf2e084803ea28eb20194490a992ba8c4249d56ef +Mac = 77bf5615ec52f706ca746401e9fde43f15605237e550b93a8472fd144fc39e5eca0fe890838828a0 + +Count = 35 +Klen = 50 +Tlen = 40 +Key = e3edb229240030c44ecc34c855c176d8db48d138a7615390538a90ec44e43b06e091f7c8fa606a0d91ac93a8bb815ea7dc01 +Msg = 5e56f4bdea787d8e6f434fc114d2647b3f86ed3458b33c0ad198e05b639512929a98504193d9477105c7f6367e411186ef0aa34a6b77f8b62c6bbad6d7855a6a0098b1f4f15ce80fa76395021e4e2695cf4083247693eff118ca2fbe45c7ef9c9b3f61fe8b6a271160ff73507c5f6d53e510d5e7016ee9649e9d893b35c299cf +Mac = 12aadfa5bcf4e356330c99c65edd086745e113f1f05569d9ea699db349fb3e6be2199a7007ad71bf + +Count = 36 +Klen = 50 +Tlen = 40 +Key = d5728055ceaca4b0a0c7dea23024dbac4a735c2240c9f2ded4f2053558081b2a144457e2e8154058336fc552f3667d942dfb +Msg = 96bb91b01e68ff49eb74bbaf26b94a269436c1410eb1d7a431a03e0d564a3496c42a55342594b384379b28c7c431eb2ad490624c21d937facbfbae3d4dd73696b0a23e88ff8a4957fa9c45100ee518c985d77d2afbef0e2c1195a1216544d8f5c1eaf4b39292ea4a9c40b992ed1cfa8a0fd3b9e4823b83c36936c0c384d8443a +Mac = 798429b7121b0f1de65c702bba78f51c142b483f96a4dcf12a95686074c1dbcd7d2ec6dfa1359baf + +Count = 37 +Klen = 50 +Tlen = 40 +Key = f54e582e3ffed931e05f2b20a599218fa201118f76473480d1f04f2733079301f610c2d68e3e949010e6594ef132dfb5101a +Msg = f5d2c18fc109854abfc47f1f39acff2f9b116e4f3594315d3d23d1d5132b599fc908002be3c108c05bf2e611e909a31281b582091c9ce3e8bb4d67daa975551c01553d0e7173db8a3d903d7487db2892cd64b99eb3d3489a035a9164f2e8168aa5a0bf5ff389c44f6d87cc6f9b8a57588905593682a2271c1c34979b75ec6392 +Mac = adeb260f3a38f1bcd2d85f03cf87ecfd4c8a6aa1820e132e87443a24f5a3f8d87124236cde9dacda + +Count = 38 +Klen = 50 +Tlen = 40 +Key = 6d2dd39eb5fbb9410e6652259c5402ea0a14e70a7b896a1ac48b144cd88aa43983745edd5cd9a5e3f54ecc23540f2a6aa7e8 +Msg = 5820928f8ee262201abd8da3c07a8f38734a9dcbbea22f8b6249bc9d41b0c4117a811415d67a4668637c87125edf9d53560928d98f3f2735a5babf9071fe389a306749c4e20595aff1aa75e41340f8c5716028c409218fd2512efa1a1d1c7df0c2fab7047c2957dc0d6edf81a745a9780c7827f3f4f16e49afccf6a40bb19bf9 +Mac = f59fcfb65dc73bc3d07118f5a5d7d0c2b6b0f61e3f21916f53d5cd6a56307fc1f1f8c5f8349a3b19 + +Count = 39 +Klen = 50 +Tlen = 40 +Key = 32c0e6b478d33958fb40580bf369ec64e7c853d7d187e9e47d4a878e32504a0f94ba96cac92a5a81db9095c85d4119b9524a +Msg = 1b5cddfa796d6956a181cb9bd2295c8b57d9d2d4b64a15932b1c4e1754c040e72e95db0640510e7516a3defaf117b520bd39fc7f43fdeb3da05ea0d5f6466f1761ae7a712d06816c46d7fb79efa765eeb71dda4ca965e4c3c4d692f8abd2ca059deee1c1a653694317654aa135a215fd2ecc94c3514aa62c7dcc4907da2ef9b8 +Mac = cfebe44a614233360911ff1c0089a94ddb4beb91e81209f71419639957984f13ebb123c6e16010fb + +Count = 40 +Klen = 50 +Tlen = 40 +Key = c83ac14c3aefc2264e0ca5120e806a9d226499bef58c850c135cd22dd6dd359241107b612c83cdb3a1213200874e55d77d34 +Msg = f03c802de9dc4148c3109b96fe2d1fbac6788ebc10e991f4e62eaa2afff36bfb9361e67e6de4642842325aed418998a8eb37c4bd256007fd8cfc06ca081f147ba47da5029d2d06cbb8ad4ce8d9278b6cd2f24814795c302dfda70ab17a51eab4ca99a7fe9f3e90face8a5bcfee8f5ecc22b102093364744be2379d297c12556d +Mac = e24da31c2549ec584487da6a78d8ab43ceb65b013ddd5a503fdc58dfd5eab0333a4c8c15ea50684e + +Count = 41 +Klen = 50 +Tlen = 40 +Key = 4669d93298c70519df3a12fb618216a77b15f57ce65ccc36391e9007af3df2ea2ba086347970256bd787905cb4255568b7e5 +Msg = b63cafb63001021837a13e46410ca942d4f92b2341cda5148ebe849fb438962c0b7f1cc40297201b136109cef6066ce9159825ac41f7a78fa3f29083f5af817bf24d2c2b0ac7ae0f5b1c20b0ddad6823dce655d2ac20ec7f98c6fc851bb7f96153ec0672b25b54fdf71bab745cc846f81129e41cea101cec5582f12e8e18a6e7 +Mac = 53dbb4f115e1cb292440d84d583ae02cf07de44b481f65438a95a14b72a3413cf5763b86277adaf2 + +Count = 42 +Klen = 50 +Tlen = 40 +Key = 27a50a6ef6f71e5903a0ead724b587afcc69a6e1d1c973f173aac0839bdf5f2860afcf78cf861c61ecea00bef4b14e2be571 +Msg = 4e9a4f18f6e00790ea2ce7e6473b84e8ed7d649b2524bde5887b7e8a1c7a935abf9765a8c9dea1fded443b0e6039b2ec3d7c957b29334625333bfecffdbd110c21027491ce887ceab255e86b1d8b2268633dc2a98281541804c65bbd276896ec3c8281bd4d041fbd0205f7e3c55a5cc62567f20c78356e26c5c59d3be1a4a861 +Mac = 8c00cd98e39787a5c91d20777f1a8bb4f0bab8ed8a3a1698805dd52ff01420459da0011ac4d1781c + +Count = 43 +Klen = 50 +Tlen = 40 +Key = a6990c41a94ef7a358fcf1e05dfd02b41193730f33cb2719e0a72f73bf7b98c07d9887657928898cc059246f3bbeb2d327f2 +Msg = 753e66d2913bb74a2d9b3b112223b6ab7217682781a2e3a482771b142fb9bc40bd19c00d0f3e40fd2a698af8e959754df16cf1f4e808e216e2392fce1c9b1532ed7bc28df9391fefa8f0ede8d7591390cded36ca704a8bcab8d8e9d565ac2348edad94dcb9f5fb28907a8a6854ed397cece26034813285caed9d72b070b48b8c +Mac = 2d36562d9dacf9fe8cda55ee2099e2e9c18b8c02dae8a235aedc4748d68d4563e0d93c420e2eef01 + +Count = 44 +Klen = 50 +Tlen = 40 +Key = 038bb8d2cf699af839d597806b2247edec8c830771c1d580f7a02ed70e40d77d7834aa37f20d82c35221f0bed28b30c5ac73 +Msg = 32947d045f6c1dee7dc055edcf1a957a7c536ac488b109f603532cb880cf1cf8c9190fead1a7b54dead20ef138807e766600235697356626a0f7d01874b620c5df609a297885a1efd1ba88eff03ba6f603d4a8c54f012b5c6a548b78aa17f55add33c4ca3a500a5c983e6cf2de933482bb96a119975c8120c93102df0a3ac63f +Mac = 16f50fcc2e87a8d525c4402d45146e2dac1f9e9bb4725aaf90c7df008437e7411974e15b169d599e + +Count = 45 +Klen = 50 +Tlen = 48 +Key = 5eab0dfa27311260d7bddcf77112b23d8b42eb7a5d72a5a318e1ba7e7927f0079dbb701317b87a3340e156dbcee28ec3a8d9 +Msg = f41380123ccbec4c527b425652641191e90a17d45e2f6206cf01b5edbe932d41cc8a2405c3195617da2f420535eed422ac6040d9cd65314224f023f3ba730d19db9844c71c329c8d9d73d04d8c5f244aea80488292dc803e772402e72d2e9f1baba5a6004f0006d822b0b2d65e9e4a302dd4f776b47a972250051a701fab2b70 +Mac = 7cf5a06156ad3de5405a5d261de90275f9bb36de45667f84d08fbcb308ca8f53a419b07deab3b5f8ea231c5b036f8875 + +Count = 46 +Klen = 50 +Tlen = 48 +Key = f86902e5e5db478ec6e278692728a812c4cd8745f90a7d9f7915f5a94345fc12d2770a3c94b01ffb9e0412999eb6261d11a0 +Msg = e0bcacbe96dad6f60e51129f35acd03e12276a91fa13fc15037c75cabb0aee3a19253bb8b35cc0e63208867a032c8f4150a066642f6ff9ea197dab7e9d6da67255c16e051a43bce174a489e85464693006f11a4c61135dce4187040937eb4d1c7eda6e2c315771f0bc6f4273911a07151c63afd3f8c8cec963e4a8f5ef4b8b3e +Mac = 4bb4eb2db2cc921b159b78a2bb9edc1608bb2a1ca9873b411ae30a63386e462f9f69d9f5fc838ff1818748aab74da94f + +Count = 47 +Klen = 50 +Tlen = 48 +Key = 0d729c7e630560f8e8dbeb745e021f1fcab754bf6c8af0f4f4bc37bdf3ec653f90f2fac27c0c56fd2838859335e05cdd2cbc +Msg = 009b71ebbb05a82c8c13388f65c4b3b57164c5e5ed0eafae3970f7ce2fce5e53b34913008b6226f272ba3f84671b906f4bbc0836abc1cac1db02dd47440d2572fe6e92bea22e97235999def339443a05d24fdd1303e8cb6113108e9ffca22b110a9156eda571e2056b397ba5834797bf2da4aa459d8a99d70923729e01945a78 +Mac = a7d1b0081f4884bfa7b30903251fa2803d96822a2160772a473568d41ed3adc77c1b4950a22a14ef5b335a2842046cf2 + +Count = 48 +Klen = 50 +Tlen = 48 +Key = 5405e1f28569138976b03675efcb88ce373e92c84080fe381ea0a853bd2ef8b8d4596eb115557eb5a7009f32d5c49f8a08bf +Msg = 3a7f4dfecb333e44f0258d33d69ceff70ac07e948f5c6acd2ee3ec450db17ce48394447c2b8bd4ac37cd1705070d866cfbfd9bbf851189bc82852a1ecaa13908053cc1a7c17fd514c2eb8277999d027279d132bd45a6470ded21bc3bfb738ea2697facc9b697a9423986b5d1b4d4cbd12c452cd4f8a30b8a19bd8ae4c9b0e578 +Mac = 6cb9ff908bb72c45f49da3f4a8c5265983c1f4d811dfc098cc3ffa58aa6a6d0ba18183455cee62992b4c3a6cb53c5c16 + +Count = 49 +Klen = 50 +Tlen = 48 +Key = 6c075056122218f595bb28753e87ae6334a0adc24336e85bdb8202545cfce30490ce5e067988108c4e158bf6c0eeb4a4818d +Msg = 0b9b52ec0e46793a179589513f117a956fcf98717339373f5010a268d8b254cc7b996b6460255925b59bdd28436d320945bc868d7a1bad87799617fc45f3ff852137e6f5a56c403c12a26d8be334eab9a44cc9e607a95e5e35a03cbf6261605fa47cabe805a49645d7b221c247ed0c6e35884ac4436cb38b2c38f9fb5886dd21 +Mac = 58c6f879aa6ee523dc374a01e541f02f4c3dffb948b071468d2b242bbd358d8614aa7fad660348e61828cea1b758b91e + +Count = 50 +Klen = 50 +Tlen = 48 +Key = d137f3e6cc4af28554beb03ba7a97e60c9d3959cd3bb08068edbf68d402d0498c6ee0ae9e3a20dc7d8586e5c352f605cee19 +Msg = 64a884670d1c1dff555483dcd3da305dfba54bdc4d817c33ccb8fe7eb2ebf623624103109ec41644fa078491900c59a0f666f0356d9bc0b45bcc79e5fc9850f4543d96bc68009044add0838ac1260e80592fbc557b2ddaf5ed1b86d3ed8f09e622e567f1d39a340857f6a850cceef6060c48dac3dd0071fe68eb4ed2ed9aca01 +Mac = c550fa53514da34f15e7f98ea87226ab6896cdfae25d3ec2335839f755cdc9a4992092e70b7e5bd422784380b6396cf5 + +Count = 51 +Klen = 50 +Tlen = 48 +Key = 5f76d094bd102281900a1c1973a1d7a6da880c85f8382022e0885d24ea7d83e458637f24391c7afe8eb9151aac47f324e1eb +Msg = 07b2eb870ed51f53b01cfbe9b01469d96f69f7cc03aa8768884b4774bbf0e43dc5e9fb3854f8d1e8f05b43028d0600d05c31f5d3e71209ac5dec0b3d2a48e80bcb8222e6e1887dcd84dffc0cd9e70ba7e75ffefba62bbaa35955b2991e53169dc48846dbdc0d8dc813b00c4dbf3df427b7fdf98e687d0314259026d1bf97d4bd +Mac = 9891feb5bae6e7f517783322943d7074275f405e54412f3f27ab11f5fdfb57bb54067852789b55dd21107c11a809836e + +Count = 52 +Klen = 50 +Tlen = 48 +Key = e339f1caaf630eea2e88fa5989bec005c780464f935d2e6140edfbc20a0975279f3b4e8dde740584defd0bce32b025286b68 +Msg = edd19cc1f4e6185c362787bf3cc3e93a2a21990c4f2380cbf9ad88068e615328d8ad2e9fa108403e807807e0f258064fac58b76430c5c76f9f0b82d8ce788d079b42d38282ccc1556b25b6b7c6d1b5eadacd5e635acd1c2b3ac89f85c0b68dd1de9974b0bfba0469a0357b8ce1b760d55c877452f5c3e6c872edc6548ea6bc4e +Mac = af65cf67f4b82a1f1ef5ff3c7b99266daff3e134059f5ff26261fbfd6114f13d69c1cf1195b93cc9814255ca9a3e9267 + +Count = 53 +Klen = 50 +Tlen = 48 +Key = fa0f033f3293389e5a9312c6046757eee20fda34e4c8b4d8a1ddd2a8f8c0b0bbf7596362fb9edd5c19646d49bd74856191e2 +Msg = ab6d18f2c0756519657eab694e73f35969a324c279d0c994008214c863a12395494383e744c3f30db3136ab1e7535b0e84a2375d2a34349055a44d43828c89f09454816275471c6c00ec9eda1f93e1a8302ee172ae627f2c0dde7e13e5ecd2e353451a4b9d2a6b9e14b04fcb3f5c0d8f35ef2be94b8332cfefd7b11fd4e884d8 +Mac = b075d10aaf54eec1a14ed42d77a9d961452b480bc6f655995dbaf7acab6befbe7bf6945fc0b28ec1898b3a912b539a7f + +Count = 54 +Klen = 50 +Tlen = 48 +Key = 19d7b971259fdbdbb4cc0977adb704917d2b3c68b97796df05c26d75349fd777b1e229751db1bdf239def25f0774754b2c8f +Msg = 5ade9519477fbfb754e1427586417618202ec140cfec68ed2517a4414888f988ec7dc3757ef312aea257b78ce05e9f1b9a32606942ce12fdcaab60a55b9cde7549f69e0c47f5fe19d75bc31e055a6c7455b4c090fa21aa8448f146c86cf23c3b5b944d65084b2bffda358eb55dfd842a38ff083d5fadd78b89317f34e554b9e3 +Mac = b50fa5b15b51f7b9eace48a79bbf3e392150fef2448500e56a1b25cd5f41b3b159872985b67a6170503e0ace217e6ad5 + +Count = 55 +Klen = 50 +Tlen = 48 +Key = f915e9a8a822b2bc5e67eb34cae85a5178118afff44a130732cc1b862db31d9ecf54ea6b11d0ed3863eab2f34e15aadf58d1 +Msg = 9185eaa99394c63ca43f67b663c0f03ea998aa85b1264bfc7c79794473638ae54fce8e4436538fcf2609177b979bf3705c9e3702cb2182e41d858398188fbc2aebbb861e59d356a719c13e1a7da2b7a1531b9d3409f07bc514d209bb9179f3a22df3dc21433ca32c450ee57a5dfac33a54b8e502b2bcbe0827091294294ab6b5 +Mac = c19115c8ad223d0ca3e2eaf0ee5bb33900b29e9a8bcb3d93b9511f3186b2c23e4dddd1be36cb4d43cbb40936126f19ac + +Count = 56 +Klen = 50 +Tlen = 48 +Key = 35c28f3bb2ca3a2d3a5089df8b6f3ae27af3f9072dbd31d98a6a216aef2f3253240788f68e11d706a533784aa804bc9d8fe9 +Msg = 268a1505739c34e36179ed0b316a33311cd89a28f361189c032b0d033b7882d1917baeeba16bbf5f97d5d7525036543abcc9544d879e7838f8ece91519a899971856cc88ed20d6763d2526a97e1383585df8961c5c55a9a4c075aeabaafc832784c374c39ee302901910e2f7052949f3c60c677dbcaf3147236d64ac379dc7e7 +Mac = b5385799bd110ac1152146e295331f3ff5c2d676765b933869c9b507e0715f73ef00dc42807e2e9313d973fb114f74c3 + +Count = 57 +Klen = 50 +Tlen = 48 +Key = c1a8b10b8f7cb5ba8e9c4198b04176cfc70161c8eda3809b233282ca38504f2eedcd48315678d03e83350b766050e5a5da11 +Msg = 24a5551bf8c75913467aa639ee6f3a6203c0d8167dd45b942e824b15f879ae553cdf205095382649c78ac011f2be3d860c4a535a8d0d6f166c7a4a5e4bf9bd76ef8ad605f2ac2b19bc7d6e6caf2242e6a2694d6291ad8fb592fbf2ec0b7222d623f09ec376eb108a0d9cdad18d63f188ae67eeb7ef7d627a894b6a49a1ad847d +Mac = c4ab31ef4d7b1872a0f926db17ef4e4e816c16815d7163566460afca3dfa3af3c6846eb1f6e9aaa08dc14754977b08bd + +Count = 58 +Klen = 50 +Tlen = 48 +Key = 8c185fbb4055ddda5111172aaf518688cf85727343c51d718e5a3eae3680b0e71b6a6c860687b50f850492baf7928162e369 +Msg = 935848ed0f2851a4b225e6866d10127d533f21bb9e95bd4df3b157f3e766c92fc16b399c8154408122c14ba61dd642662eeb68065a84834531833c34519cc8482b0ac8ae0a806ede5163e2730336e43a8956b289b0e72cd2f20e3677f6605ee05a9bbfccaf9424e4c571719629183f20ede8c7eba7a6011bbcba0d64df9bd11f +Mac = a0eadb390b490ad39f883482995c790425dd7d01c0e1f86252527f2fa92b948e320a54900fe2b95c588d3464b6462a9b + +Count = 59 +Klen = 50 +Tlen = 48 +Key = 1b08c4bc3cb4d58339073f6575ea0eca0b1ed58eb28aabfbe4d374f43f2e62722b72bb35bd72dcb3db897e55a17638e2046a +Msg = e735bacfd46777da284e5ba4aa638c08dfe8d002dc70ff5b58a1b989053954d1214f18ae47dcaf768c79d73bc76a5aef30dc40cc2d6b43f368e7835425587bcdd33f3496e01fb8dcd23ccaac94a3d4130d6a2184f7394c79ef0af95dc82cc2aa258e754f473a7c5423209cc0b815e3bb9f1bdbf0e4e304351490816e97be12ae +Mac = 2fc24f969c156e34093dc51a683a489a12afe0ef1837d8729a3412ac41de04940331ba226fb54e37c9425edb8fcdeb74 + +Count = 60 +Klen = 55 +Tlen = 24 +Key = 40eae6b8e3abea17c069f0882649577b1952de40f47c6ac0530a036b2f1a1f714b7b2335cfbe27ff3390f9f05f47653c11bab4937e5673 +Msg = d2813f531ce4931cb290899579e6c75bea8a324db875b440b2463df5ecd90748191b1fa93c1d21d0806742ad638e949e1a0986e53140aa5973e6bc5b0989df0ce66729be628462a824f909dd468f987fb48c0a2fd5cd99c96e15cc4ec3a5b122ff0d6778d541e00a68efe50d68105b647ebec414eb4509f86c7c76b6605606f1 +Mac = 3f255480d645369298f7724f42bca1b984233852777ff7f7 + +Count = 61 +Klen = 55 +Tlen = 24 +Key = 4e589674030c40679c343874d6a2d6256355eb95484e4add84a087cff2c7fee7703a177e4144c941b00f5de2f602750d5e4c4c9ea7c13f +Msg = e9e83561cf23ffd44a79ee7654c8f3c7802a5a358f2ffa883e69af7d632e0ab1389946c1f7d27eb0a78f1e8935db9845c61758ee4c3ef905576db9222fa22ada1fc32be513e3178066c23c11f5928f0a78019d0f1273c55b268fa5606dfed2ad456fcc154cdf310e2e173057bb7641de3df013e00857c65252d95b8045cb69f4 +Mac = a1227528f8c21cf04c7c9e6c020119bb6ee907a9e1107c61 + +Count = 62 +Klen = 55 +Tlen = 24 +Key = d4490fb977fb66aee9f2dc8117b4ea926e507cf34bfaff28b2f5bb2b42b663b46846eab6d4e8992d29fc5f17f92368c0f0a4f0434f0e5a +Msg = 3ab58484ad678e4af118384b2cef66eff7a82b09a8d232add73a5d421ba7abd715c75fbbb06a5f47a6eedaff47fa2dda767008ddf49ccceee1b238e87f7745eb3a3e4ef6e51674b7474241a1d6e98c40c20f9cc935c490f6da9bfd109c5eda4db000995dd5d39740dafbb65a612348c9e46f30f6f5b1436acadff5e4f8c531a8 +Mac = 47ffe392039a44404bf63783b2408f85f25dda84e391483e + +Count = 63 +Klen = 55 +Tlen = 24 +Key = dbe1056299fded39ae361a693b75e1c35fb563b4626562c8330e546d1536b6fa9584a3efbf25a57e916dcb4bb0c2fc715ab68ac59c730a +Msg = 522315422009b6a85766d1f9b694ac7a3f160cea83ce9a5a1f708b3f873780c602d7ab67f6b234bd664edb95b907de45bd011d3feb617ce5edbd899f5dd05f2bd073ca3513c9ab28b4b99e43c4a1dbefdc485a505e153b1afd7f64a680c56c45c2dfb8d4feb4e390498d632c60ca6a21a4d40b4663529ea059a0657b777c70b9 +Mac = 087167ec881de09e711e3ef401bb3fbe40fda71790f74c06 + +Count = 64 +Klen = 55 +Tlen = 24 +Key = 05233efb47ca387cb8d82c87223c5a2dde3c0181461775586ce9724c0dceb007c04ab7be73e9f5fb18220ea09c817329190636314cc81d +Msg = 6bfdc8539fe6bf99892c1c36d521f7b17c224ee3837755fee57a0dcecefb183e09e4cc1dbc19862253a2412eba0c67d2cf0ce61117668767af0d7c0a868c376fcaa48310a037cd6d1865c25060f4205638f5c5aba5a40d15ea915a34b4fdf408958714b3b3083b80c2bbc8252fa1ca459e23133997fa8e107c4cd2d4bf17f60f +Mac = 615219d2c623d5f0b4cbb5643bbe62d9027c7e6436060f8b + +Count = 65 +Klen = 55 +Tlen = 24 +Key = beeba7959995358a1c238dc2f457f3c0aa6f47372f5f3471b85fabf1cba590589a74b385915501002ba5fc99094f684c45db476804a808 +Msg = b22d8517c117ca7f2558ff3733c23f42fafd1d30d1d0dd8a339ce570cd296e81d4a57ffb9cea1c236700bbe87be3f7c3778688e1e617738415857ea72240e7e15640558bb4480f25d26c6cf6e8d18bf327b443e24cad5dbf7435015f32676f53df03f00f31b80b4c0fa3fbaaa413619ab38f377b2a1a0503f9b557e124266ea0 +Mac = f1afa54e4a98b1ae4cc1cdee67e42386a36d7c876c677384 + +Count = 66 +Klen = 55 +Tlen = 24 +Key = 2792a9ced0630f51705317f4920dcd68b367bed3fa4552ce23ba5cafbd71f00e954c7582724afaac02aece77155e4a9d0989f26e858cbd +Msg = 13adde3b88ea960a7740685976c0ae6fbd9286417df2c89573793b67bc9e088ceb7c6e9559d6b8f6bc586c68fb1fc68b417c64d051f54396198dea938946e576a5e375cad9f2861e8d0ae163fa52a3953c42ee9ea8aede775f00bf9023c57d726a6b5ba3b148e8c913df30131a5f2fd5d56d8b722b23827f6e5920253423b6c7 +Mac = 49bb81a087bb434af90af426bad3e1ddfd83785f415d0633 + +Count = 67 +Klen = 55 +Tlen = 24 +Key = 01455f93e0e8f592e423b53e57a4e4db40e85cece4ae2e4a8eab8b748c7fe5267ae8512dc335307964fe0e74f313ca92e0b2f729fcfd83 +Msg = 9626bae98c3fc215767776230ac0cfbba413b7a730bc12cf4af8ff67a4c15b67a8e9883b5f666cbc92edbc602fc27aadedcebcf433f2b03b379bdd7b6396ab0cfc26265d0554ffe86187d3653954b03e9d97d6446ec3baa07b76510cea518a43da061db546b283802c6e459cef207a55fb988bffa7d83ae55fb2e382029901f4 +Mac = 3604cd38ecc643116b67e173e927af54b3882d1acbed1fa7 + +Count = 68 +Klen = 55 +Tlen = 24 +Key = 7cf34519715f64da17f163fb9bf0028cdd8f34067fb7d1313d078b447c1a234e2508ddd6b32f31be8b33c36e8c43952ee89e7bd23256d0 +Msg = fa4240b15010ab3b94dcbce24fdc69163fa57ec5ab378f7ff33a31d96b876a0f69ea65ed9d266aefa13a0ea7d1e3a75f5d6203009d7f5a32a4ce80c517315f50409ea5175e23ba323f27f5ec11f20f6a7670d88dd6312818f9b51916d5e77376a4e768f93a0c824e962ad97bb710897eb1556334ff55e37b1b7662934cb08dcb +Mac = a62d888a3b94108f7094a64d8b7ef34581689f50aae08d63 + +Count = 69 +Klen = 55 +Tlen = 24 +Key = 2afe865562bd56043eb122e604588301357f1f35bfab7bc274b8110bbbc0a39a863ece638473e24d9709f1ee88f72696faa458909c4fdf +Msg = 77e654866c79866f7841a2fe60071e62ed77c5cbda76b767f1b6b19070878e44b1f00ed50afed7e1f35cb985662436ce8cf54270954647bbe7f96cca7c3317fe856cb0ab54c2a9107893bb8d2a4a7210e879ebd15f29dd3f8e6ed639293ec7823b82c36f106e04e3520e2f7d7222d810492c495400c77fdb2d3a76463e4da7b8 +Mac = 39183d83b1b1cdd5ef1bfbc118eb9280c89d56b4a2929976 + +Count = 70 +Klen = 55 +Tlen = 24 +Key = c13b8fb78341d426c2248f091b597123d263ffafc7f82da5a55f2f395d1c8ca4d3cf7428d65a534e5642a673d1580e820f98a2030f518a +Msg = 4fc6b2e78759822123ecd63ec36c773494221c2e2335df337370ee024d468341d71316d768a5d1979bfb441ea24c5afedd4c8b1cabaa545681dde46939201912acbbaa748285a6ba49a71dfdc5a21c688794df9ac1b7434b592a7a333cf40227f546d8867e00e9d35677c9a3d375a7baba8281710d62945b24df1727ffc928c8 +Mac = 5c4311312a0a6a1882ce939c8ee4285f10ac6acf61eafcc4 + +Count = 71 +Klen = 55 +Tlen = 24 +Key = 23ebfa07e8183a33de0742decda84f27e7bb3266b6f1ea6c524f780cd7d4efda165bcb328bc3837c904c62afcf449214fde47a4dc6754a +Msg = c30907938846e570cb36346b5f2791ffe708c61aa4e340c78ba8c40a9b2c5d0b6d7199770d28f424087495f4c6f138fb1af56ce41816fe9027ecb50157183f77f4846cd85bed9a550c9f714b0180d0673e50060eaa2f46fc1d60552bba4c86f67fcae87e1a9dbe4dfe3e2f39b7dd3f8b7aa2fe610138ff51968c0c4f6dd218d1 +Mac = 0cfc3607b4e9bc8bf78a81fb78b1448d373bd7c198e5eff9 + +Count = 72 +Klen = 55 +Tlen = 24 +Key = 72e3f7b20f0001b2f6d621ac38be9ddfe812b49fdae482a8abf023b201d01b45146ff5cf6ec02bf4efb0462513594674787844a69a2156 +Msg = 5e9c92ce2d88ff343cdacdc0f1ef30eab51e79d3f7a637d573e4a35fb4ca3b00d78cacc1939cf5b876d9cada710436119773858f22096161b7653b47eb5aedc3059f9d7005c8e495e6752ffa21ca66fa721fccdadef82759f53720885590ecdc6f3e2c828ef412f21517c6c7072a08cecd8a165d345bd0e6b6c21acbfa548274 +Mac = 0db147ee434fcd355c5c41cefa376ff135074c624d19e228 + +Count = 73 +Klen = 55 +Tlen = 24 +Key = 820037b251f283a52f6c19177dda02fe2416060fd593158e96dbe6647a3bde72afbc3325be56514a0f617d24ac4cb8bc4691e6797de82f +Msg = 8746453e63f5acf4c8794ad8219c971442f599260601ab8e36767dc9add35c83ba3cb309c685d2fd378def4d94cd6a65e93056a46d25340d62f301403d4e74a8072781f503c821cd911f55be525a68788db57539d1902a88dcc5cb26bc387a4234b0b5ec61e520cc9dda8514a46c19b3f62b01cc7c6a14666d92e36573bcf6b9 +Mac = 77fce55d8e0f5ebf731da846b4b4ea50c0e35d8bca153e61 + +Count = 74 +Klen = 55 +Tlen = 24 +Key = a8e05f9a3532bbd1ef24c93d235ce5dfa2f806dcc47fe61bad17640ecff926d0b0238271ee4c9f8e801dd7243e9e60a5a4ef2c4cd3380d +Msg = ca51c4875c2fb06de814abc6440dd8325de32fe07c4ddb5dc865e0a90d590190bb63e13732fb68f63c4b6865dbe381ba46ae42522e24908d45c24cdf01b730249de1fa3462f7cdb82408d43c0f242885a459f424fee1d74b5a9989e0d6b5c2d079b257a6748da65ca73335706738963b7fcb8e7f74ea763f0ed2e0d313ba7e3b +Mac = 5507bbe3f44c28bda055fd996d45af1284c26a8d39ff1909 + +Count = 75 +Klen = 55 +Tlen = 32 +Key = 8860418e48ec77a2292c518762076b7a0cc6392ce1c9ee1743789c11807d9d2254313393af536b47b900474f13df1bb8609d38a70599c8 +Msg = 107fd2e4bd7a19a4ff6f482d62896da583c3277e23ab5e537a653112cdf2306043b3cc39f5280bd744fe81d66f497b95650e7ddfd704efcb929b13e00c3e3a7d3cd53878af8f1506d9de05dba9c39a92604b394ea25acba2cda7b4ae8b08098ba3f0fdea15359df76517be84377f33631c844313ac335aa0d590fec472d80552 +Mac = 512805c9806a4739d04c194a1f1be679e9e50e313fe63ec5d12cfc3cf4b07073 + +Count = 76 +Klen = 55 +Tlen = 32 +Key = f15776976b372abe66379961f0787338760a9a75ef51ec4957ad5ca95f5948526394070b9cffc12a97478359e503929a15e00089dffb7e +Msg = cf857754d18e6b8b32941d69fe4416a128910b6820fc0ddaa7130099e3384eb7aea4ddd634ac3e8dbd42270ec7be230658df88c5920ca99f88e04e9250e661295aa1ea9fffd03e485def722d630116f6288d200e81e72701d2b0d22924a08f89788388f95b82d384bba4e80ef99559393fa5bd8a1413edc82e8c74a587ef40a1 +Mac = 6b442d4f5cd3e4bc609bd2096db31f2b2e1e413aabd5db0aefdc599813f6dd1b + +Count = 77 +Klen = 55 +Tlen = 32 +Key = 6fa08ac6d358f801de4e18dbdee3d860421d336a0a4e4b697cf0b96019d42130cf7c091970c5eb7e63c888e89a03804ec3b42094c3867b +Msg = 5659b56248400d7cdf101c0e2a6e887b10748f58e3fa3dce3914e340f7dbc62eae71145a2b3f1c294981bd4b0a051f9ee62fa25063411445e6d927b8c9bc2224add1d6651271d41a25dedd4fd8109a5938b88d00fc7f48e4598edd191e549515fc83e5cc255c9d191a2d6360bd186072ae1539b0d43a41743a3bedac1d2d88c8 +Mac = 6454d29d2082a32897d3d783259033c1e877ef9060d4a5ca8cb67e3cff73f461 + +Count = 78 +Klen = 55 +Tlen = 32 +Key = c696b906b1edae7f82050db23c1f1f9293744fb35cd53b0c438f07fbbc91f6893cd13bf0a8eb0c5a0e0bf9ec930e7c03ace4d1bd913907 +Msg = 283a9d5d58e33def86ee9e87d20d7e769d2ae928ed44b99d137a5e1d8c65db2826ab11ad63d1407c2251cbfc7ced3b21ed428799b4a093467c19f6f13bd8003d5bb5fcd91806b2fa29b73009a29dca981907609b0796dfd5724f0a90c9ef7b91107ee44b3c279b53e14756140ac433c468a0fb97b0cea7323e442362fe51530e +Mac = d5515f18cb9fa799f1064f7a242e53052b6a0917d528b40d4e87ad95822fce33 + +Count = 79 +Klen = 55 +Tlen = 32 +Key = 68ba6148eb2c56c1b764272b236496d19bfeff2efea5dd60457d8fd966b45d587715b61717dabb460ac202b9236493de67c337f16f22f3 +Msg = da1fd0acfd4ad64d4539fb4a4c69d7ab8cbfd206d2253946f07492abb2962d1214ecfc77b2eda4b88010d49bbbecd613209e64bf5b6cbcb4c2a8f77c43d6965e9b115ee0c9aa668bc3136eee67fb72e6b4bb7f1c3af1c6cecf6aefd38446afd9d8569df22bc9414f75086e4a37ded2aab2dccc2358fc7d1d808422b75d2da10a +Mac = 21f753f59e3a635536f4077dc15ce736e6490cecdefd56bcde91447f03e62c14 + +Count = 80 +Klen = 55 +Tlen = 32 +Key = 882c0422041c466469ad9c8bbe94749a059ef869cbf43d03fe9dbe4cff440ae7f83cb95670c1a4631c8156bff85bbdea97662552b73568 +Msg = 33cd61eb27d7ce4389b95180bf8fa4476ac88b1a9888acd83c4aa183dbca4c4687226ab711336b597b468265acf3f8ca6743c5727e1161c743b6d87640e51d7228d3a03d0d9b2263d2e2c847e4b66f2125bc4048298b84ada553b9a824c2e5f8fc282a0581d99b6778d34eaccfa0b2568b7e232401bebc93496a6da3f02a4dde +Mac = 204f1ca2db1afa72419fa024c757bca17505002b80b55e86c01cae05fee6a26d + +Count = 81 +Klen = 55 +Tlen = 32 +Key = 86fb0597fee58d6f6df38f27479c319f004ec141696ba4293c929088f51ffc4ae4f5d4f6817b70d6ffe4c75924b4e0b5577f8ad0fbf44d +Msg = 69e7b951931a4f41ecd9f8d9a857a5966392f2f5b49159d806eaa52ca388a9c912ab3199a33039fd48135d6ca632915e6c541268e4699da8c814de6356662beda6ed72c93ced7012daed24199775845035176e67b0ace1b413e06dd88ff1e8a0ceb3632985d85c48496e3628a3a9e63566e3ee3940e18fc590583ad377af49a9 +Mac = 0befe5d0ce9d18f38b890822a8a0856d77e83e93757fa3cef1654027e371d25f + +Count = 82 +Klen = 55 +Tlen = 32 +Key = 5d20020a5dd409c7e5344065871e57e01c91a443501dc8bf619890fe231319b5480c3879dee618d319962596539e2970513fb5c0c8eac3 +Msg = 0463fc7ec28c9f7e4c90efbe3bf36c8f2c35ab076fb2a601ffc75664b73684a9c2ccdc9754414351975f6a93e966a33944b0f401fd916a91b281b0bc7e7de0016eaa9954393c52222b96ee8f63b290023ec4b0e3131a6fa3214727fdc580477cf1465e3ed94675f7ef7da238129fdaf202ba073618165a3e3461e3b1f6085f23 +Mac = d70579764dc3f19717f26fa40ca089d6262198db1a1384b2380dce8a7fc926e0 + +Count = 83 +Klen = 55 +Tlen = 32 +Key = 90fdd9cd8ced9b0c7a60cc2184aafab1c93a6d32f7d75c511c2a6090b97d283419c26f5ee0d72b78e70807d247d6148db4f6bbb90d9df7 +Msg = 8e7e9bacafae86af937fe46b25b9a41a858e87900a883ccc88bfc9cdce4f2ca7730942d5d369e9d154c861e2eed3f935ea3ce730e9b077032908688004c3922cb9b4cd966ff80fe7772bd4bbd2dbc32ff33d8e3bc51f1a43f01ee0e859199324e7e602968d43411a850f039dd9ba4b3028fa445aa7bf6cb3666af8aed53975b7 +Mac = 217d613003f59911efa218758f537633640d7e68d5c0bf0a3268bd796de728a8 + +Count = 84 +Klen = 55 +Tlen = 32 +Key = 78bca5fe23d54e6509120e05cd1842d3639f1466cf26585030e5b4aefe0404fe900afc31e1980f0193579085342f1803c1ba270568f80e +Msg = 3a9f2fb04c0c42b2dce178313786aa7713256c96c90ce2f2be53d5ff22bf054cdee7c1c1c795b625186f05e21fd7980d360fb5a1f5a1d30ba6feadecf965961afa060ce83f688fa76608b46cbf4375144575cb86d3637f3894d63cf5bc89eadd754537ad1c4b7640aef2ad567d91e995289fd5cdc9198b807024aaa2d1f4a99d +Mac = d03792fa24355abacc837376d23bb6ed504a87018aced2efa5c97478dd321523 + +Count = 85 +Klen = 55 +Tlen = 32 +Key = d2f055e03e94f39e7bbd1d7a1790e8820017cf9997fd616206923660d315275bb633be05a8cbecdd3df4fa543341c22e4b441f2c5750a2 +Msg = d5f3fd629cdeb3144002593009941cb83cd312fb42997ec406304fd19f66e9862fe428e30bbba2b41c402d07851aa2e38599e0379f4a1311f9c8361003d4d61c58a81954e9890048589ce969a2fa58be0106f6d811ffda0731d108ce2c31379519e8d89e7f6f533abdbd943da95dc6af78c35ec4dee05c0e75f4cdf263a49559 +Mac = f4d1a62fbc71184d3ccf6fa3255346d005269d0e5ed9d8655e1013d9a5a9ada6 + +Count = 86 +Klen = 55 +Tlen = 32 +Key = 3e7c15fe168a67d56f21f95f513e9fb1ccb9a57926d51133391629a016523574ee0b864f33fcb7effaf233a4a4ddf704bd279adf24448a +Msg = 6725cf53ae93f5cdba4b7f5bcf0a84c274cf591931906d20982b70d3829fbb3f9b7cec952198d07de80487aca23ee2b95da8102c4d397ad9cc73eb6c9f95f4447b118f85c7400268a45506d62b902936f5b47183e1ba42a111c781f1365cfa230eccff4b2bf45237f5264600f26620e045d9c343757a8d21700f7c8ad05c9583 +Mac = 6f4001a6fb68457ef43a140b5da5db50ba88de93ff2326d25eb92c69f9919761 + +Count = 87 +Klen = 55 +Tlen = 32 +Key = b8dfbcdc41f1b7994868eb6cbb8a58ec28baa6ad2449aeb5ed8e3c2f4e391364c3e432e6deeb560ee97ec0a9cdf438ef336252b5e86df0 +Msg = 14c5e750576ce3cbdc3d8db3ae68655b6674eb149fdeb1f3a903b4d5823feca1015722cd55140224ae3171c63a782170532762fdf7983b2d7821b9a6743a873808ddbf6541330021d36cc1d60eeee4ab0db38e0631ec374fceebfdf8233f3eba90216521030f044ab4b624ec1215d995fce019363522cde2122729d3769939ae +Mac = 1786bedfdb204f5a4e947cf3980348410b97fa162d89e73a254e3b2911420ec0 + +Count = 88 +Klen = 55 +Tlen = 32 +Key = ece8f08f7a942395d29452ba8b298a6ab736f6b17e4fa6f305128fdd95bad39bf9f1434b27e622b223a02c2e2192d7ecea6fd95b803fea +Msg = 2b5c2e7c754f246b7045c43e191d075c54f910a77f8a60ec4d8e4d7dd296b01cda0ddf1b7f76dbc2fbf5caf1ba11a706b4b83801f98340e78d3cf764779eb7b3155bf8c3b2647e925a64d1dded8deefc73983c08af07c13ef7ae96a8437198fa834f61ba36a077a3389ac24cdb1a44053aa20401ca9d4bbb32eb13925d99bdb6 +Mac = 11ba8965cfca0d25739c97793afc961cdef0735c021344621ea40adad58ad000 + +Count = 89 +Klen = 55 +Tlen = 32 +Key = 3abf1268a892877f4267594f3e72814073f8bc67b35683aa5c453e252a5cb5cd4fd7c753c6965e4ce469a28e308a6ddd746bffc714b2f4 +Msg = 8eda4f99accbd728c95ea46d31bc0bfb82193ccf128bc7ca8b1c5f65d81edda045be883be1dc9329271ae742de3323383e8fe1cc54143c41a83e8f111c727ee0178f3baee3c7025054ade621ab8ed0f5b905c54e48ca67d3b6cbbffde37e39144e75f05a7a332c86973e29735e751b1a3da46ebeb4565266ffea7790f5e91524 +Mac = c6e34c6379ad0db133962de9d7712bf2bca37fd2221d3e10ca095f1bd24ee412 + +Count = 90 +Klen = 55 +Tlen = 40 +Key = 304f1de5e8fcd7aee34d5fe5127fcfca0bdd112bb0d9a41f0b5b9cf77d59eb7218a8e0304912ed69baa8addf765925114fc44bb27d4bc4 +Msg = 0b995eb3f8d1fb4c1be0a7fb364e5d1b4edf5e3eba5ddd147b97fc8ecbaaf742f87f9f1273950b0824018a8501b3db9bdffaa1b7884b11830d3eee0a5ed9b71e17111ff69d8ebd1c6aaf0587a5ce7703f6c516da98b01cadb0f5eca3dd8248c61056c4a99e437a4e93f200484a27971d3a46a5ee1317665a0ac6de9f702e1202 +Mac = 03fc9fc8d4f186e8718475c6a3e8238916efa828b54042932e872bff0a1362a6750563797d3571e8 + +Count = 91 +Klen = 55 +Tlen = 40 +Key = 9e1c51d35e3636ceaec44d7ff427ca5e98b3fb8c0ca77364096367521bd558e85f35f22e8bf2353a30ecd2013ce3d86dc32f8fb0ffb2a4 +Msg = d77721f0ca5a83eea7821073d40990fb6cf00b36f006270b390bb1deb116790ec33463c29052bbe6e45dc97068a7a5e8198d4d27f857f55f035f9e5b6576ea08ea832f35b56dca97353bb610557a5d30f3dfadfd942e6fef565ad43f26ee516232abadd0a17359098266ffda034a5ddce430543f2b543cc518467b115b475622 +Mac = 6321b02d91591009913f8170fb0b5ea6793ee8bb32a3e62fbe11cbee2d067dbae2611420a03fb003 + +Count = 92 +Klen = 55 +Tlen = 40 +Key = 53a933e5113a62ea85908a388ce7858cfe850e09834130daa946fe18341585eeb6c9fffb5f9f4af715b5989ac71267b9ffe7b4b3b7146b +Msg = 6c37a65405b58eb6d79a0fe5777687975058dcec98ee10ac82ed15d0b5b3e345fe2cc9ec41f200e5b6b8860d51e829c5828be2f61f6a65529f72f6dc885d7eaa2a8fdee98e3e8323aad63bbdd69c47c48491b1e92b99e0c984dc6972f96d28235b2a9054d3e33ff61bbed5fcedd9071abc32efcda3c4a69b9bf3159cf02a0839 +Mac = dd1f092022bdb437755b8900df5d6990c5ddac34ded45d8bbb8a794c928a16feabd0058fca2ce160 + +Count = 93 +Klen = 55 +Tlen = 40 +Key = c5f1b9ab6535bc70ee5473555fe070b67533fdc3711803d31bc72afc071742e017efe2c941fd4ef992ab9e3b734f1dbe2ca2f023a674f8 +Msg = 25c2449f1885615129179a20929b0ff99812508160ddceb4037c8fcce49c26654251e3de09a04702ee40bae8baa18017e62eeaee69d0c944ceb3284b894c3bba8b9b922b14ad92c1c966260f067db23575c8494ce0ba1f05432a418c265583b32927ba4ce1b62cd6e210455d1d368c9b6d68d5636ca3b7408b69405962c0e897 +Mac = 6714fbc0b70c6b0ffb33a80aed3e511762e87c5c9a1bed95b67d03b948b215116a11b94729a38ca6 + +Count = 94 +Klen = 55 +Tlen = 40 +Key = 8a735e5b19f0aa6c449588ae2c10bb645bd4bcb5a76dbba55910e0448f77d625dfec8a123da330fe1f4c883bdfe95fee60dd58bff446ec +Msg = 980a7fb38f023ebed635d2bbf5d82c2881fbaa38f10e8e78ada3afb268766e11b0aaec87c3557a6ca53f51686fe78492eac732d95cd900a4a25ac6b57fce89533444aaa851db5c68ca855bb34d0bdc3dd352bfac76dc0c4182919dbbcec018784d6121dee09dcdf96e905965374d1c6f6522ba77e41e9b9974d19b8cfd5303c9 +Mac = 29e7c7ae061a50c471d5e7fe3faacb772d5fe1fbdc072e76bc4430307cb0f68bf8b064c1ff2a859a + +Count = 95 +Klen = 55 +Tlen = 40 +Key = fc63d7b0f56a3290c3f3f75f3f09579bbb45d6c48842f46ebc500d96316d7e32d171090b11887bcfbce58b62f2b506767052295b12ba4e +Msg = 36aa473316a8b206a22edc8e33457d39ccee612e45b7b186a98b74b9dcce555681aaa7f81aa3a6757172005838109492ec11796cff3342c0353780694fef89f8e79978a89b6b75956d6f37286a91c6d68af7860ad890715fd2f0a413135b1db92f1fc32ddf27a6cd5ece89e612f19e6d6f4890f019f6c6cb485ee79f71399900 +Mac = 48a484bf9b7197a56f34b2318fe88a8f133a6553073c055b6410907316be7a08c9eaf2dbb4791978 + +Count = 96 +Klen = 55 +Tlen = 40 +Key = 65de751a9abf91c5de639338618e3df81e9994cd5517ef7d3cb84fdbf26dee00b4cc1bd953b744e2e5385530bbb041b59431ddc01028f5 +Msg = 7197b130fcaf82b3d15a47555ca3ef1338080e09a324e8352f8bcb7ebbf6a3f5a2a0c85a32ef1ae260575037b97c8dc19c963424a71afe0a6f974a2274ddb4695465e8a83eedb93daa636d1f47045b1d35c5b96675f2af4e9e15af4fd119094eeeafba2008f1854d17454614ed8582af6c5d42d8f5f4228b23cea50ebaf1cb2f +Mac = 167601cab956a83d1013e78cae3ea29deb167b921b0b8627934814e9e60566d3cf42766e3a00ef7a + +Count = 97 +Klen = 55 +Tlen = 40 +Key = 6e375ba22837129d1af55e6306bab99cc29346e83b49fd76ba9309d3668b6eff0b5fefc619492f4df0c116ec5af1763b5969ef70241410 +Msg = a8fc55fddddf63e81780d2ea6fa51e14fb1bb0c7f24d17dc111595233dd1dd0f69ba1bafba7135e0e9db50c2ea2f9768cb4d37d4de52ae221a694603bfe4dc6d398be6914733b50e5c93f76446547fab0d6749851e9bb851a86f23a1472490eee017bf8bcc4e6bd83851ccb8cb3b60458a10ebc2f951bdd083ce33e51cbc80fb +Mac = fe9ea791bdb8326a8fad6ebdfa160fe129b36beb7c3f74b8d9cbe43e6e61e7592827a5f16b18d1f2 + +Count = 98 +Klen = 55 +Tlen = 40 +Key = 8968d657a6b3521038067b70c3aa05b2a3555dd7e7ad27486308ebbe01760b5f5801f92a8033a69424d93e73d807121cad5cd6c803870c +Msg = 1c78cd8373d9b3f3fee9b4a11c574d6b429aad0e4aedb2470d9813393372df0f4aa426e216aff5dd28b1889fb2e4bce09a67c358cd411bdcd6a3c1cbaf6da2a8d7f45208a40200afdb1faaf67e0f8d70e59ce0cc1096c1fd3c177099b40bbb7feaf0b9bdc6dbbbb13ebc806e27e2a8604bc26b34bbf48bf2677e876ceb5512dc +Mac = f1c322457c2229250661c76555c81c3e8a2fcbfbf37c89ac43940a47a9513437081936c03fd5987d + +Count = 99 +Klen = 55 +Tlen = 40 +Key = a16a45c20c1b98dbd2dc638fb7684690f626db9f9bfe3cff2e6cc62a91d21dc42b1370cd475dff1ab646da06bc1beb652a7436b9c70c60 +Msg = c05e649d3fe1142330ca683ede042dd4a64ac41609e9d461ffc73c628da44c7e99a03471fefdbc35dc27362531f1b162ae227076c3309b37fd4b33ee919d4bb939d1762e3ed27c41d6d55168b19947fdcfed82e39474ac6c1ea5eb7ad61510e545f9121d2ae6ba11c9dc9f4f8583556cb1b4e2a6a43b71c80bdc4b4e849402ca +Mac = 484c5d6cad99563ed7ff8b2b6c1d59056400bb6d29572365fefe82b55b93a3db6958e5893723284c + +Count = 100 +Klen = 55 +Tlen = 40 +Key = ee59b47d837ce466a5c6361ac4f64365ce5007de53372d17e8fe8d16c9fcf409c2de23354f411a300281965025cbd863a17aa8a01ea09a +Msg = 7458a8f4cbc15e390633de7d2b2df46d06dc6cb26d497bc3c8d25afdd0d734f596b5420dc7f835452fccd4547db5e6f84680528a4c7a85d5ffdf14284495a2aa761a05eeaabca4c73808235e77844381c7a1033ed5eb0cb11a834b1aa5cfe0321b7037c0fc74746727cd15c2a102d2b39225c8f79005d7fe20a449fa7aecb437 +Mac = 2a18d6e05b4e386716fc5e8b5395c79d04ab1786ffede68ca46d4c1dd7465c6c1b2731c4a1d8de60 + +Count = 101 +Klen = 55 +Tlen = 40 +Key = 6aa20e80402d8de895c1524f7aff11ea645805588014e1cc46990a6d51ea03fd6e6e28b9f3f3a08152f28d39ed14856f2cf6463ecd29a5 +Msg = c9947b1f99a8f4d742766ff968a250653b2ee24af8eff93eb23dd68e52ef4ad2dd871fc5f5a9b354a3d2e6f55346363a204a29a65294ecbf25003964cd847d61b6663b4110acab648bd5a8515fc6c94c9007cd2c702f3c67659d4b6fec690041de9a983af39a262d84e77cb4950a4ec312cd958359a9325df97ed454b9871b99 +Mac = e568392f545994c2ae2c845cc366ae8949b73d4c46485412f63be61e315ca777d909b2e841f65c93 + +Count = 102 +Klen = 55 +Tlen = 40 +Key = dafff4db046073b89d3d2311939d7fc9472b1683e33a80c1ee06964d1e3ce3d96dbd55e26e9f38dae275658587d1b7a43007bfd11a33b9 +Msg = 5da17f172c06192b866ebbf35f8e97ec0ff25a1c52ee54a593d6d99a6a71e71163ac087a018c7a2f02668e4ce5524ec0aadd62a4d9fe35ccc54c539c126d161d75d28150bba16cc30df3e1617240c78e9517bd74c91349974a0a32b0c5872ab81b7bb043632f350f2e7d7edd0e40497f590933332a14d92fa97a3e7d8ca76d09 +Mac = cb113d1aba8a763b774833c24f200bf28facdf7d75506cf3c9a16b14937a307eedf32fc640382099 + +Count = 103 +Klen = 55 +Tlen = 40 +Key = ef71b7b3ca0f904dc50447ae548096b2b3603b312a5e59d490851b270ee99aef259401bdf2c3efc3b1531ce78176401666aa30db94ec4a +Msg = b7216e9ad1289c89d8d590f9dd0487c897a28a6606c0388955e5c62205a9448f487f2212abd3f282f8556f405b94bf6dc3cef55a8b06da405a58ed32488aa84f42e3053caf4041d25364e0137490f1633c5393f55fa4b883fe2e2942caebcb156cf42000259810e0b1abea5a7220a612cadb6d1dc9c05bb80810833ad4f53347 +Mac = 13194167194dbc07f67581776840ccf1a160c5c465313f53e013daba7d405880ecd7124295e775c5 + +Count = 104 +Klen = 55 +Tlen = 40 +Key = 2bfa932702a35ad436912ace48999d18c06caa9e680476beb9426d0793d59241315d13ad5bd0218edd1dfee7391058879976d5430781ef +Msg = e8cd40f84cc8155ea751f0ab617d9f48d1984e7cb0c69f33ceeafdfe03c72d5a69662535c8b722ae527af51d91609d539d6e1b2392a3822141da4ea926f2f6239b2bc5864ad3e51be823bd8421647dfcce55f6e06ed1b06fd4ad36ce1de0b54ee5e6c5f2bb66872cd112f0e8f8ce64cbcc1587bd2c9950a5ee2a5f73d0d99064 +Mac = 2d44160a46ebeeef54c3f84cb644224279635fd8997ae5692b4710de8d7d8210e1aea092e62f2893 + +Count = 105 +Klen = 55 +Tlen = 48 +Key = bfe6bb4c9b171b93d28e9f8f86b88dbe509c66eed41818a1986d75b616fee4460f5456cd23667c8a9f1738289601519d33716a534db235 +Msg = 5b7a078f980bb8919743bbce52fd0ba3c22083d2b0254e28c8d3a05def4da33bd64fb502cfb5d00ce03d49ad168dbe5d1c784a190c7dfa0685908558fe1e37725a4b2f4ebc7eca209c1f5f361b9f2d2393b9911c73f87da24a7a256221f3fb590ef4de3b066e8e16f3726432063a403d4f6dc2a48b9fbd443d17e84200d6d737 +Mac = e82eeb7f4b7415a4c95dc82c46bb59715fda4e0bdaf64a7fb3af3c7058ec7d2a172b8293057b72f9664454e7dee11d95 + +Count = 106 +Klen = 55 +Tlen = 48 +Key = 4cf54eb8cf7bd421ddb0586ac4fab9c478cdaedd89cc5a195332211f7571b9988419843300fa1ded868d318f48909078bbf1839c8fed61 +Msg = d22f194a1af33cd8cdffe9967f677acb68500d6cbbf77a3f34f58840f0c16044827641dc43d6767ce98f85dd5cbeaa9fc5b28333e7f20df8b281cfa4156055e61555e04a1ceb5c5c93ba9210b2e89f6197f0a53996a2c091d16c3cd908d7059ab2545e5a4c39d6c0f10778f82bee43590993da4571107c51b83c35a6702e56a8 +Mac = 830b4a798f85c448b3d54abfee61b376597f65666d83a21052cb3f4466f44747431607bc659c91cb520308fbf4fcdb58 + +Count = 107 +Klen = 55 +Tlen = 48 +Key = de281ac95941750111396ad0e152be30ebf8c47c2dfe8bd5562b56c5d7f54c223c8c7135bd1ad51c10490c6d8207dd1c46863e9f0d8681 +Msg = ee6922e96d48b6e0b52a1cc6f3ddfc7b1cd11786237a1fa36ff6cc7b8cf02cb221c43b2622e3b376467a25c2bc4e49b21aea93ba96fd069c78fe4d2ecf11085d632e6472ec80ee94810ba98e53925dd39bb833bfd1657f201f6bddf5156a7f769ef1c55433e50e414e27cfb32271e2e58981201f3e7a31384c87a359c6c13a03 +Mac = a136b0ce4e8239ae848c5dd84a708027b0083efbb61589b2c30764def27e2e1b221ffb4d18af81f27c35dccf0683bbeb + +Count = 108 +Klen = 55 +Tlen = 48 +Key = 790bd8d4e9ff691a6bb8c0cd64d68d31195961e2c46363b9e63f44f3dea37590bb3297fa4f4533e784ebab80f42f70c3b39976266ff7e5 +Msg = 4d53f5dfe10ca3880f44fbc2d9bf3d1f97479f4f49ac3f432c085d918b47c71bd8e794ecfbfd1562ea7909927aaa10e87505630eec22c10fce07adbdbaa9d65012b0d74f517b20b49e64344ba145165b953bfd889ea94ff85d80cdb5c2be0b52223524d28a8eabc5528de5b4f59735bf2071d785084ad14401fc27414d8f4f6b +Mac = 856c255d058752cfde3e74df1c4a34986e6f7ad5a34a06c157f59d8d6b2039918c4201dd8b2d58617911555802d7c799 + +Count = 109 +Klen = 55 +Tlen = 48 +Key = 15e3ca0e8d9f69f7bc8f63f05b57586c1cb59eb33ac37d3f54769f667b6bc23a8ae3b0aeb50c71fa6582bf404415ba6f93cddd68c42b31 +Msg = 929172a72b23de3936037ed526238ba70aa8a695c04cb4c56500ec5f0fd52e94bf1c97df91cc528a3625b175a4937c130cd589b50d5e8c0b27fc31e772b7684590fc0089e0fb7807f44d12c846da288b26fac30bf7da6a809b2238682cd43287ed77d72d8076f8b759c3c95872bf391a405e7f1fe786f52daab92a6aa5f43263 +Mac = 8d6895c2b80f3ff362dfe355252578dfa31596c8f8b028ee9cd1a689807b6207a216e3516f3d782234d65eb1f9597f68 + +Count = 110 +Klen = 55 +Tlen = 48 +Key = dfd7e7fa6dc49cac285dac27f0968e1a8bacdaceea5cabffad5247ebe9e402a828005fbab16379e50a0ca140bcf1498b56f021c2b4087f +Msg = 004c38356decec9ee5ac710126e804b8f6d947eaad0ce6a4f5137b2cce7aaf92d5fda287c5f78e723e1ea7c1c56e457d0d634422746babadd19b8df66da12d404ffa650fbd65493aff970740663012df8dee7fe3df20af3d595e2e549178dba0f8ac49745c1c661bb17f5a271016b20600e1bed6f514377a16c525ee43e700d7 +Mac = fd24205b960f569042ec8db3c4e442eaa4eb38272aa36f40327ac9f5e3753d3ee8eeefa28ec5fb1e4e1c8815416515d9 + +Count = 111 +Klen = 55 +Tlen = 48 +Key = 8c354e398566a4b9bbe215f1ad7b40d70e698710753365fe56d301fa311503de0940a6c718f80e19c163ddc3c68b01c4bb03cfeebbce56 +Msg = a116269f6dc522d0abd6cd740c0879e7902b4a0b9bdfea334b9e7f3f09fdda085e2ef1fe08ca900f4ecd4bcb90e3b7c622e2da3e5b97dffee8c50e82666bfc5c3146ffd77697e5d99026e60e9187d6421e9ca00f815befb9f9d12e565467b332c0653771dfb48af619e88484367e3f232c6183c635b3822a25cbc601fb7a6750 +Mac = 36768ec85d992222b67619454918b6ad9369bd002d5a1d08079dbefd35c3ae6d28f0475747afad3c3c64981b20e7b665 + +Count = 112 +Klen = 55 +Tlen = 48 +Key = 1fd04f50423cccd5f884f5954c19c8a4c6efbbb0342ea24da92bd28ac79687c83af583cc8550f812012ea86422c14bacfd5e3107073028 +Msg = c050ea6c6b8bc0971c1c64e8b8df91397ab8f0a1f2823c004d48a4d8d6b8705fbdd4e8d217eb710b27c8fa56dc2996819a736a323ea3ca7d5c889fb6ca300c8463a0513705c7ef5cdcb50d8ee3091a8fa7a8b4974fb5c8ebd9bdfbb2a6314904391aec453c0880b1c34b6437d566638b29c194772d9e7e724c4e807371a57107 +Mac = 7bfaebd1b8b1950274b815c26d4b7d11bfebf2fc1e0bfe4ef0a3e36196ebb64dbea0e2aa0f342c4fa021f82faeca66ef + +Count = 113 +Klen = 55 +Tlen = 48 +Key = 5a63fe74efdc2a71b87ba0557452386fc3d0bb31dd9e3a3684c8a584371d990ea9d8787d7180bf2f030c9480df4b9f4908831ba7b8592d +Msg = 5802a9f1d0bf3b1af5aca2a16a6e3988f937b9add7f9a59e29d3e5aec6d0b0493fd0b0841dc661f86924bbd172941022cae9377c9255eabef7dc6d2efd0870c97cdf37d86712f8c45477852b39b92a33744fd91f0faa842041b3cb6d3874d79515158614390bc825bf8c49d8494650640050e7bed6613c6b0f404792ff7bad55 +Mac = ab9aedb3bae00ba8a335bbcd2ca1c610a5e07fb090a5b7058f11ca5c5d884601068aafc2491ffae62db3d5799f6f7997 + +Count = 114 +Klen = 55 +Tlen = 48 +Key = 52b3069b60f5375f4dc447f866090a3a44c902eba0a6d66d68a9ff9c113ec5fa30806a0a44b7a5f9d61f5283c5ec6715db8a2a2fa329a1 +Msg = 503f4f781c453afef8a77661ca7c4f0d622d1959c27c1fb1bcc5dcf4c3836e1bfb15471c92c3260d53fc458d78e1d460c008a759c2792c7d81fd9f65409981e4985546eac7414ea84bba16f5b0eab0f1a68e70e856fce979f66417f79b56de0f4f84b3ab64ca9a17086b5062199ec9083a49ddcd260c3eec4481ad717cc26de4 +Mac = 5173199b9551905447d3e220c3301f99006c61d2013a375601fd3b162176adc4dc1ff3c345f81f5b71de718b650aa3a1 + +Count = 115 +Klen = 55 +Tlen = 48 +Key = 05b2305a6264fb92280197a579b4d336395d5b51148adbfec2a3671589641b530490feae24e42ce6744a355da150c02839d87466b31118 +Msg = 27852e97225f7966e2da1e7ec5e615853167878f32448fd964ba43ba14f7eed6a2e4a0952942e9d462f8e1dac6ab6b8df390bbe5517e16a2f548d93ac649bd16de4059fd335fe9d1769e4d793b55551e5b0a3b9a9687712d7d309d729094e392a34262b886de01c5e4746b446c0b58a02f7e0f94498728e4c41d974bb900e6b4 +Mac = e36f45d68614266248a91553c18818c049ec60e233cd5ba37d6cad12d9333962a5d3610f2dddd3c0343cafb82953dd9c + +Count = 116 +Klen = 55 +Tlen = 48 +Key = 185f150008c482249b50548efe89c71aeb4e0fbecf6b98c02d6b92263daead6fdabb21809bd6f2e13fd672294e3107b7fd592ea3524bc0 +Msg = f00f1d6331110716041ba25d28fe48b7764238f7c372993a08bbbc1cc1b6a22c9281be9d3014fb3e7fd201acf85fb4c54eb2fe61516bcf3d126662384890c1c2f2f98b913e2bf595aabb0f2f691d499e08bc35ba514a8ee470557a3d541c0c1658a00da823fefc05ccfb534f42e10c28ec8a64698cbadf1769b28c93ad018a10 +Mac = 47c51f9c7346bd7b4ffe38b2feca74f43df543916a001c880483ceabf6452f7a3edf9d80bf321e9de27dba18537de349 + +Count = 117 +Klen = 55 +Tlen = 48 +Key = 4a6e36f56637c7b8f445b4f096c544507e2fdd3dd31e823a575f9aa44848f39f844b0650f0cb7d4d192df2511c33fa35c485621bf391b8 +Msg = bac382a645b43242a8274704a6a2b55905a2993ee59b295e503aeb7a12ed260ecba5973242db64befcd156b10e1a42d42f5cc89a1155404bf21cf2616ea985339798bbd0472a5b2eb58d6e84475dadf4a76a3b6d19bc90d00cd4b551ee35b7214523564afcabfddafae3f743fa73df029654587fa4d8ff34c6eb9e123d98a320 +Mac = f194e972fde5d62f56d5fb99137e0f2f942d0b2a6a22916951ad03bfee22b58287bbce5d24700c6c395452dfddce97ea + +Count = 118 +Klen = 55 +Tlen = 48 +Key = 83fb4a69527469aee5d72be40f3c9bfcc94225c57a4bf9be76e9b029c4933260249dd76c5067ccd483d4b9b338fda00d34270963c6f35c +Msg = 2c97ffb7f1937176ba699943c435b3bc481fd8e34ddd75c5c07afb5ac656d8ad516fa73cf2dea3a2eea5627393a7c068ccf819bcf457bbd5e8f99a27608946567f6c1b9aa849b76894c9b24fa19b89206dbcda51a4f5d7a316a5f5030dc0e4aedd18c499bcdb9610d45df09d9718f52b53f2856b06beb177730472b675059aff +Mac = bc852d73029f8c2dd6115c5949598b9ea613be7601a5a224d46ceae0bdc0ca43a8cffb86d9f322cdc09361868e2345c8 + +Count = 119 +Klen = 55 +Tlen = 48 +Key = 1b0bb110ef8d7139773117d7308dac5d11ce7c756f071df11ec8ac05d9f35ab4e3cb2789ef4eee873ec5a2620799d7f01b6884dac95807 +Msg = 21b801681f2ba3d51ca2347f4bd2a75c5319f25901626459394a397b33816c9ce472cc1eb92652e78b65b2acd01f306f0e0bb546968e225f6edee4418f67c954506e11a423f4c9e27fdd54ac1d514b0d676387482ef07bd19bcac79d68160b9b4ff3f983c35dafcedf5043059c309f3f46688fe6315218b9a8570c172657db7a +Mac = 3dd9d0f426054cabd0dae1337bec5682c0778679a9a3f908c66b90e1c28814bc6b9a61d710b0041a2f17d576a69dd4e4 + +Count = 120 +Klen = 128 +Tlen = 24 +Key = c63bff382de2bd2d076538ea88ff5413d11969f50a0df16db12f8405310e0761b7f720da41bbec68f8b2f5c5bf005ecf0c17612ff67efc3890d0e6117607c817a5faaa7d9025ab3570a9f614db93f1319861b88eb2c3c9facb9e0135b356c756394d876a41a7625e1751231f034175ff1eff545b6364c27a09a1bbb911846ae5 +Msg = 992a5b8a639ae2b2f7fc9e1353a79e521cfdc98990937290bc932c7bef5edf636e751b6a6999adf92e31704c9ded6631dca9070c4c94d91fbb914108dbdd998bf2f28292d4ac7c720fabb47065f81c847febc15ddf4c5aa417b81c853846d66c8e6b390c8a1b77a6003111889311e9d46d8c9f8233041aa837d065f9f0e1bd8c +Mac = 448abce3c38e7f109073f1513455214d0361ca759c775452 + +Count = 121 +Klen = 128 +Tlen = 24 +Key = 4359b09328ddce80ccf1d3ec5437aba6a11ae789775f04acdefcf0d8c82eca3ff5c6e96a14c321742b2641763802e04219d35a54a91015052c040902edd97ffd25f618a21f8b12cd9a69c7fa6f1876fd732346f39fb788786e6c3d1a8763d80e9c914522925a29f3e2626c603fa0f53e79b4b44da17ae66b6edf9408dff35dda +Msg = a57195bff000d768e39ce6daf66e91b31a30fe94429d4c2f222576a136e67b0307d8bc3baa47a51889878f9f66e3e59f9cd6868ca87e6b89e94d8ac7a402fa0e4bd75799fffc68275345ff4f53202114c5c967b9aec1a4d7187cc8ac135905b6fad83080f70869bdc93efe93c50c8d391b7169c45b4e3f3e3819faf98bd5e322 +Mac = f215c988601119873340c4cff6063ff97ceacb3eedc40aef + +Count = 122 +Klen = 128 +Tlen = 24 +Key = 9f06fc05d8892b9513578385a5c0292f0b9e9ee7dd7c4d3cfdfe607b147dd8753ff1dd82051452c68dc4adb30da906cf86196db8af3881652e643fae0ed0170f6e6e45a976135e8990d6292dd4b9b144c38b98b6390caee49d53c2315b6db9c19447dd8114cd776784549ffbe03553162cbbc7e96340fc42b192940be19ce513 +Msg = a30c53e81e0b4d5be3a210b432e6f4394ae755297f7a45a08d3c7eba2cd39afbe47787ef23b2350d8d6391e19309b76b473e63c26e82a9fcd73ae752ecf8f78087fda96b07fd7006a2225b76fd534775f9b554f4d072950462ba0cf6c908d5c133a7a1a5f174660ecbe555bb974a0d1f0a530e08cdd3707ed3c3d5eeeb8a9c88 +Mac = bdd3e637be7317f62ffb955f7cc913b65507cc85d298202f + +Count = 123 +Klen = 128 +Tlen = 24 +Key = 2f4595e175c07f52d7be52a7a8191818535eb24cf01910c21553a871ef5820ab91be4e478ba263ffbf3563177078d9409c43c8bb8c8ce4c1a9e602239148ce2e6a10bcd177474102e827425df7dacd0e308507f2108565f9d2f91fcf8680e2bb6344c6c75e377f21fc9cd7c164ca5c4cb82c5538a58dfb323992e6bcf588c61b +Msg = 28bd1384c5786b1a689e0f305c5d3e9b754b0bb3f3b55d4faa3339f16080443d778983b0ccc4668edec3051c3309a910f71c8e46e7dce7b46d1223a00c4c6f10ffe97c831d7082de002685a966dfd77bd714deb38936176980425ba5f99661ce090385658223c7f316ec173fbf86d0c55e5a8264a26cf4572bea6966ef05235d +Mac = 39dd7e97281b897fb36ce83afe4c8b06417d05e10460cc88 + +Count = 124 +Klen = 128 +Tlen = 24 +Key = ab1cec025ce72c9cc162028506d527e2cd296b9480f2a65fe6adf24bf545174ae8dd471c91c90c70efdd7e4c03ebb9aee0878e74020d7979e0e6d301c4064957dbb98db488a04b63fef65f230e1845cd3d45d1361aa22057cf81ceabf5e269d9ad3a2693ec74d3be16360dd3cf65b3850eeb9ba472b88341da064a1330e26019 +Msg = 8c581d3fba1744dde5c8da61c90899ea1e7e1bf96c604e1a213822c7e1e884891deb9060e7df02650440eeae4377b2720e13286d3f56208635f30db02616fe0eb6a5d05ac9c5a28796a18aa5fe6786061b92b69f1b6fc8b04fdab3a87f49a843810d45f509d40d8bc37115109fe0ffed6d842c55a9b42ee098767c76948a6a6f +Mac = a3f6807e008f8df4f9e1c3e8f43d1403ab5f6b2c29564ee1 + +Count = 125 +Klen = 128 +Tlen = 24 +Key = 38f0a1720529576df8e0bed148c3e04b79938949d2ca59bc1280171c5f8f48ad7ff600024a7bf9bf5f95e2a31788f9c5b7d2dc1deac69c476e7714840dd77902cf20325d6e73e9650abfe2221ee58b15b31a55c1d38cc36a4148c01d675b36f09037dc8b575950e75f2965564522bec4d3329c3c7764f4aef3bcc5ef5562a801 +Msg = 5bac4be719240c6790176fcfeb919cb23af6bbb172f31104b5b46c56d458c2d613a2158b2cf199e7967219a0069497bb37bc33eae73b4e17227dee41c282648737922d82842d17d88a42a40e89a1b39ee4b15d4a24661eaf406e351d1cab4da64fe65c7529c2cc62f5eed9c37b9f3a84c93e037a335dcaf499f00893e8bac35c +Mac = 738747eb57bc8caa2e1b86673916d5a5b94cb87f4d3d9ded + +Count = 126 +Klen = 128 +Tlen = 24 +Key = 8424bb05a925a6b09cad2d0528ab8d15a56606f3701aec7498e6fb32dae5ebd7d09c4498659474ff8c471eee3241b6e1707f4b73061ba324052b8d59cbe673a434082f460f781ff2cf287cd4833de7d2097145127eb5cdbcf81a5f0178f1185c1a3123178f1ad212cd18edc005ea4a72d6039dd8c03192c4db7c1932c9510186 +Msg = e197e4a49e73596a1dc14d330f40125b73bfccc4b0e126c1e11d43327008f8f0e6d7386b011fcf9108e053f25bc258224e9ee45f37402374c66c5bdd951e212c0016ceac37942d439161769d240e80869280329825ad3b171fa002194bc3e0ead85d8eae675ad948634b9d7b91adf04fe86e9eb7a2add67093c2222cba7e9cf0 +Mac = 6947d49bf9c309b20edbd4eeead6c8a5f78983bc1950442e + +Count = 127 +Klen = 128 +Tlen = 24 +Key = eff520144c1a3c67a3689baee7937452ac7198f1e9ab56b1fcb89cd4ee0c608df98c3e12474663f3fd5fa9aa784c0373d6451c5eb9f73ba2477a6a347682d79886d97af8cf0df873bc66c8b7181a94d288c4e2455913f35a7cbfebb8cfc233359fc41ceb6ad7c58ee9643efd4d65ed16cad531cf52654682a371698983323c0b +Msg = a00e97afbd3fa6dc67f1c132ae81270567fef4112f25440eac909b85162a85e1f6e679c92eb103ad3aa5239fb57ff0651f5380ccdd7e0c3f81dd50974c3c3135f111a24e9c6bc88733255cc2dc5f5237bf2eb8c60d93e08b41aac1b4a6249b8f19f7dae710543d91dbda37422a0996a4d0f962a8c64c081d7361b7822aca0b18 +Mac = fe025dcfa6604cc3e74a0f0c775926e7a16f7396f9851c55 + +Count = 128 +Klen = 128 +Tlen = 24 +Key = 132681a6ca18ad6217f1282380eccf9ef901511cb6649b213e4f944bc1010b7cab07ed3c79babc58cb093ccfbb7870ef6e69c4bce89a8c9125f0ad0a65739a20c799839619c7c995ef15b493f25268797b48150461406f6b0fc95e43d9b6f6a09066a97e5348bb5fa99df735cd80a1814924abbdc65e2bf823630dc0c4d20544 +Msg = d714946141393b69701994acf9c2093db8736bfa20a4e3b3cf462b8e654cfda9976acc027f1db39436ebabc3a5ec00fa98890693148408f7eb3981068d238eb921a1a405d5fa7e03729f5a4f33b165aed7c374f3f5e1f42390d124d7eb9882e29e418234ead986fe4abe0b174a1a209f9caa1de269c4917ee5987cc926b6bf6d +Mac = 0505523b6ddbe352de5fdf9f4f9258dff68f8cd4c6825df0 + +Count = 129 +Klen = 128 +Tlen = 24 +Key = af7855435734415cb4680725471ddc0f935dee9ddceb4aba2f31fd50a27a7916dd613baad989abdfe88f4458f63df4560e01c6ce209dbebf011f04c2b31446e3e7f957afc0f21c8edabfa8538beba6126846f7310b969dc2148ad8106eef8e78d426f07b93d65b1191de7c3f8e8eb8ebaa16cbf0273eaf6e7158bf635b731c80 +Msg = bcc5300e069ad4f12df78c9de7c667775d9e70ed8d972ff4ec5c72b450814d810e175f0e5f7e57dd097bb7fa3b8ad8e9b8762edd3726ce2b0aba2dfdffd72b4b843e50070ea45598bbbee68a369ba684db36747a1b4ced23226b31aeb84ceab165628b62d9b3d6098ae7a1b59f9ed92e0d07c72c00af92c67c96062d4488939a +Mac = 39341404ab56d3424e7a8cc4c36ec283a748c1d2da6aa582 + +Count = 130 +Klen = 128 +Tlen = 24 +Key = 82af0ac2ed6449298b517034353c3687889b4de0ddb5f3597b05c4e70cdfd2274e56f75a0b5c6aad4b2b91bfc8e4165da2763d9054c275d9e7fd2dbb6655e87a91d79423d59017cc7cf22c1d227a6d0f6890b0f4ecaf97b878c5636679dd09edb3fb88253447790d866ee8572946622640b14f168bc3837d95270ff02fbe5d09 +Msg = 5ff26053b316d68f6de5b455377095681da77e47ee2664a4e552ef1988a57e17d1466b1f8cdd903400a50a90d1c33c9625d6170806cf997a080394062b7eb142029ab46f15d102f385d0600aeeccfdb89119b302b3f98a5d40b27e67b4e382d53b17c4ac179b33b5438d3f2a5636dfb6a99ad99dbc4c3e36d68733a2ec7bf7b8 +Mac = 64ab6ba0015c5e2ea69968f4fda578dbb8148557efd3023d + +Count = 131 +Klen = 128 +Tlen = 24 +Key = e06e730847c21b6867eb4b12f6d02142989ceb96ba11330bbe20f92859b63f793ad8cb3fedf22866fe6ceeb7617f434f1147a250f819dbd60f165b2dc600ae41a64d4255357a6ef81aa2b235814f410bc190bc1d3c4c41a987d5a4beccc0fcaa6cf562b2e802f50701b522f51ee9225cefa0c36450526c6d70855b45329e329e +Msg = 563dc6df2882043efc7428278642b2e47b2217ed01f1cbad64199f890ab84d1fa9ff51cbb7d8fb7022cbc3754222dc0d0c4b0cbc887fba1785a149cb8b69a4e011c11a3ff06f6d7218f525ac81b52a0965599216ad72b894a95f8e7903713438f64dc942bb9181cd44baf7d42d45c55ff01453045814ecae381d179d5c1924ae +Mac = 93bad5ef741085993a7fc789c4ab1246cb74190a607e53ab + +Count = 132 +Klen = 128 +Tlen = 24 +Key = e21efc602d0824748c60fc8e96736c8618ef3a96b5f4d30ccf6e4942aba398d0cf082d00af59a98389e8e2628e362a3742c0d59c251bf5e493436809e93115e6e9ab72a660604a7d0534bd96a5d9884c7d9f869ce88d77da3ab001a4ebb3f415f8b0d23a86468fcac8ec951124840b2e9134577e4471e1588b5c1afbf952bec4 +Msg = 6db044e59aa24693ab56af087e875f701e64d8173635502bcc4204c22bf0ce1e212efa306b0f565c6eb8887c287da4276547fe3336393d789f93b1d790d6e77c16297a5fd3fb2b11acea34b5c1e3da4ca28b4237c0de85f62116063658cf040bb5686b7ab9acf03accb25cbb320128683cf84b2abb6e502dba95abe66d244d55 +Mac = f08474f9d4b98f704d87dc646019649baecf154e47eecdea + +Count = 133 +Klen = 128 +Tlen = 24 +Key = 9918fae56359924aeae4d6111bfdc8c3ae8d7ead087526d95f22473c1f614a318c753826a968c595599e8e37c5b09f74fd77381de266d15d431d5bed463cc9880a75cf9f8ae6e94dc5a5a08d1c9c09abfb978ef8bb9bf0c2c77a8d83fea4df59594046b6ce7b07597420947de76a0e50ee1608a65bbb8eef335e65660f41958c +Msg = 2c46d9a814f4d8d35b0d042524b44be371765034a0c4103135a7c53bd9af0b91a32d412197a1329f6c76f4d593ed113a7458e5c5fb88470353886c68f18c07e3d524b5b40cb599827a2a43a8d6e7d7d1f6fe6bc44da6b081b2e9d58c629ca8894994ff097d1756a40c91b948f788e5d07ed2aad89e0693d0d930c95035c935ab +Mac = 6a7ff320888a5e69c9116e4fafd805c83396d8eafba87f29 + +Count = 134 +Klen = 128 +Tlen = 24 +Key = 1ae62dc371078f8d84baf9082bbe3c8ee5ece05e8519709f283e19a26ad77468da889f64ab069281ac35b0677a8e9dfaf3c45024efa769d52b48c448865e4e8770e817319f14a97b03609975fdff5b8fcc7e5a5b48a74894d2a6b3608b6adad2c44ebeb3b6f97c827382d9b91dd81f525662288af7e2b8e5059f1072e1c3bf50 +Msg = f54b64fa04379ca25e753ee942d8205ed77f382a6e0605e908f92ab8188e5d8f8a937fd203a50c226ba3b679a9624d76ada2e2f5b4412ce3c7af2b5185a20ac6230b4adab1481d009f9b10a47fdbed760c69e0056c66d88fb2233017a7d98fb9ca9b0d3b958897e4024594914eabc805fdbc79811edcd194d03e8435059cb30f +Mac = 42e2597c6bba6c32e539294bc4842df8cb3842c214b17e47 + +Count = 135 +Klen = 128 +Tlen = 32 +Key = 14161340bbfa1c4780583796f70731d202eea44297bcd428c3d9d752ef9cf9ec63be5e98080ee9c172675d2b1ddfc2cff7420be71fbff545ede032e832c0c7d1c178b3132edad12ad562ff8d1e698087009c9f42c4ad95250c48ad5f1349a6c4362c59d9b4c49c2ab23065e4820c339f24e4a97c0dee7c7028f890df1b9f5e6d +Msg = 6f24fa08de5244f30173809f1a141a9e00ffc2a9145f07e67726276b7aac25fe56981d1e1e04d548f1dc9473748737dd7fca810917e9b3089d0f5cf944ef73ccc9aca34b5ef6e65ae777557d686d3f9cbe9878038e56f3ad7c0d93c29dc93f5e2e2635948671a0b3490a6cc7df0c596324304e9e61eff15c7ce774cf6b80b13d +Mac = 642abab13c7678baa4460e4b6dec2f4ea84123999576250c98006a8a0a06eb57 + +Count = 136 +Klen = 128 +Tlen = 32 +Key = 8bcd182e78a9dc1d38ff52958632a22b739e0641aacf2ed8f8f1e4a50c88ec667b622e7607c9179f20fd3c30abe1405003f4f8923d83cecab11d631eb5487960ac720f9b402acdebeb90a392bc0aae4958395bd43f2cced950d385f290b6380127e604c4ab34c9a9a1a2d1e34117b2bd7a57752e3631f7aedffb9049223bf3f2 +Msg = 803b54a0a9b44cc935349e9d99af7c5aa600644eff8b3c9dd021a03fbd247b4819ebd46c5967ebc2c80785c87cda84a888f4bab97312ff49e981819ab13b5c2adf546b374b945d8341660b557af008c04b847a271d3729011dcfd6da35e3ce9a3a3dbf0a6783c9940a17d84b7d3b322b58794ca1e542e24ed4d546083062f921 +Mac = bc08205694fe5bcd786c785a0731b7b737a67bea10528bfa33448a7ea93dff0b + +Count = 137 +Klen = 128 +Tlen = 32 +Key = e4f9334635a1a7e89bd037227007aea379879dc96bc2feb8ad0f17aa60a1a1869dba2ab3fd1cb82e5fc1afdae5cbf41840be53982eed1e6f40321769e1e290a09400d14d7db1badf23f0aa4a74839fa20a2e9ee8ac26552418c8ffb3ff8b88e35234f1bdbc49f72270c7ef1a2417f5685d3f4562ee56e9ffbb3a9532c385cf76 +Msg = 0dbde20650041f568722bae9e11fe833d02f5d2355e4b4fa7da3105c2c5504a7195eb0851ad32dbda2e72c4f87a7d9bf09e806b1117d85b6b6add56605e402af02a8c66ceacff439bbef1686f61755eba4bc9abb97f6f3dcf2ed38d6ec8dee29d0826be448603b73dc21c3b9b6d5245fa895636b70b9c6143a4b81d466bb91c0 +Mac = 1a14d543d1889cd3ead1ac7743944b24f55c30d1f41b220de2dcb4beef915edc + +Count = 138 +Klen = 128 +Tlen = 32 +Key = 5dff263e3e98e792b8035e4c74531b472d6c4b8e12cd39cf6cac150c8048f594b77b1932fc8e73a46652664e176ccf3064f142163633960eafdaa31f11364a38dcd3b667374ee24b91685bcc885948090a67a792bab6d9d8956261e2d5cbe94115308545b7803c71836cc52d90c18ebb68f5036c67ff0c14646cd7bb94b0d995 +Msg = a4f311c6e485a66d0a0b6c4828dcb677b722519f93d2ad8147e23ed28bb622460bdb04ef6af740c587004886ffad46c0f32a032b0b10073dba9402f9c4ff6a08fe5e660a557aeb2e120a24005d281883ff0287806cd2141d0010aab189e518d706e4fec2aef5edd03491ca614a3573e96410a544beff1e4aa0bcfea4e15373de +Mac = 950afb4f2f0d973110b4b4799f6d9650fdfe55f6f5e47788dd51566d3bcbb454 + +Count = 139 +Klen = 128 +Tlen = 32 +Key = c5317735b9a564d1fbd62bac1e999e61199a09174a4d5e10bb278f7fa30d3c9a300d8ef1834c63fefd3fabfdb91e11fe5996df3806bf1ba0b24df6baa00a68af278414a1b302713b0cbd2b8cdb4dc7156a628720abb48d547c3d428729a5f9d332fed0ec4fb1d7b0b2b875008c0e07cfd264c9784116fa55a05d3b8d45c6392d +Msg = 07a5696fd7e2e98fdde3edae3cd04d5728988e0af0e306d33b49412191c1a4d61e5c509bb3334a760e9dd89e5ba62e8efbbd495883ad1c3c08cfea799a7df3630ec952b6016f262a1909f0478e823c7be9cd846a0cd7518573baa3deb933933a5e563768c780c6d2868efc52dc4cc0477c3005e79249eed7047235f9f8cbcd85 +Mac = 027e540cd7894b2043f77f52efe05495a035c3dd71bd1509036bb6b663818535 + +Count = 140 +Klen = 128 +Tlen = 32 +Key = 383ce7f3187ad66c1d5c982724de8e16299c2fde0a8af22e8de56e50a56ac0fef1c52e76864c0ad1eeedd8907065b37892b3eca0ddcdf5c8e0917dec78fedd194ea4b380a059ccc9452e48a9eba2f8b7a4150b7ba17feac83c61604c3cfcfe6655c2be37ef0ae6fc29072f9b1cfb277b64a8d499dd079ad9aa3d5e9a7ccbec8c +Msg = e3171cde18158c8e46172c051f11e80b9d2c1e19a1d15d11da036d2de8f38f35c1ce05f654dad5ef6dc1cb4dd92dbd1aca9412b17d568575190527c2db03a3247053c6c7a2a93f2f37c3a32916fcb402ac1fe2f68e7912eb60329f60f5dd9ea0b74d673b4aaa51b66cc5bc8220a9552b0b7395d21e638bdd7532dced7fa60810 +Mac = a4ad6471d8b0566987d13323f2afba3bb218c71f43aeae38ed5722a60e8e2899 + +Count = 141 +Klen = 128 +Tlen = 32 +Key = c4d6c342e2dbd2f94c2c758a6c951b38c5a1f10a92afa87eaa48787ca7b0658947bbc13d13e2f2f73e9675cfcfd523cc03fab358ecd981f05f0b8d200d87c7aff0728a17e9396637a7dc224cca8d011e4879457710e6f2d9ee7ed470afeac34685a326b6ad05b6234ea685eaa5e53e945fc6ae5146fd83a220485455d402e2b6 +Msg = 5404e7d8e805f4c2343b405a3eeb08b5527e26163bdfe66cba25161b30725cff9e1acdaecf08bafed45ecdc8b15c55eb5683df93d1fa06bbc1308cf00ec3a958d7a1a2f4ac6d9e22fe24b666d3004b69be9c9c420f5a97f54702f039cfab717fe9df912fe6fa47359ad320bc0d9e9039731185ac5ec6422333e16b7fdaf25c7a +Mac = 0115eecf3b9f368cc10c439b985accf2a1b251d74db0aebe3a30f2f0797ce212 + +Count = 142 +Klen = 128 +Tlen = 32 +Key = 85afbf16eb940e704877b4d16a8284d450451bab31ab0bb6c12c3954af4583fa7225a68245aa5fc5708bd16bcad727027c9e7a4e07edf5e0890037ea3cb4f8523f3bf0059913f48e7b3963e7c59ac08fcccaa0dc5af8c793f7228eb66785889d74586448eeb915f4efe831ec63b397a2c83155fe33b3c9f694f8065f3aa07803 +Msg = 55ceb7328ec045967807a80790b5f55b2a66aa1f6d2edc2c9fd0927ba3316c3bbf0c8820a3e6a5fda7458995551da1af278be86891c509cd4252c8a9a8769e9cb2f1a36dd9e9b2a16124c74ddc7aab28f18ad4e45bad86bf34283f5574a652b8b5e5d2c239afb1aa2d0c29d62fb65bf00fcd373cd2cc9b29fdbcbf2610a7d0b6 +Mac = e78a8e4d779521ed3169a7f30ffe84e8951752b6f8da75ec5e024ad00345c723 + +Count = 143 +Klen = 128 +Tlen = 32 +Key = c9b74b2ba807d65ae62728882a32c4c0a0b2d9019fb50ced8a2477c5f451f29507cf91ac26866e4fd106a8afc91cab1875a3b26a859d8bcdd5839aa194d921b4a504bfb8456036f4ef8e71397c0bc5188f07775230747e90b75d8b54ec7947306c00db364fbdb6af07658a108b279829b6842ea0e9616e9ef85a50c8445aeb71 +Msg = 1435f6f716806114e6df17b4fef3089a61c1f413820675e161ca4078f738a86dd4ad642b070f91e83e60fbd72e93989f359e550d3ed01505e665f7bfdd58d8308e781ac502bea35701de285c7b1cab5a276142a26a8e1b3a7a10bd1bc3b5909c8abda02fd0359e4b798028a9ad3749b37f33443acce78d6766f319f472f7d79b +Mac = 65bf092a7dbb8cefb9f05bbc8bc863b45909144ac9dbf327f3a6544e4e3a37cb + +Count = 144 +Klen = 128 +Tlen = 32 +Key = 4079ddf786334e067552706c25de34223844698f0db38e0636c7e4912d65c8ed42e640d5d877d484d1bf9f7547c3a56d7d0767bb15f6b5be8384c4a9c11280834492237230eb0738c89fb8fe28ab4e5136affa6ad64edeb25dd82285492644362fc6af54f459902c4038e58f305ed6d64b824922b883b1e9ae0926ae2b6abb0f +Msg = 8d8e0812bfcc18ca2a17d5f8ae9f42e77ca1336b293003c4023586c6a0b53e37bc52d2794415bb68ad6a41868c6ca6566063a105b28b0e4f6118e3a13776667bbfd59d195be5065291de89c0a6c4ab216ee904fd62b3f38af39f90cc1e86e2004120533b2dc6604f7c7c95ee252eb9124d3a469b602f1c3a61d4758f7e6d1c8e +Mac = f4915ab7714e2bbc8a7a1f270768fb405fe2513762b2dc02c35f6c04fa957940 + +Count = 145 +Klen = 128 +Tlen = 32 +Key = e0ac3f5886bc45db77b92113acc632721b14bdb7db6b341c8806b8d1e9a4dcaad0dcac1542b1ee4ed866a7d66594e121d979ac8e6693639de16d305d6abad2234fa09e812e56c4765af1d4e3807b813e8b46a48ac47f84873e065426717dfd3f25a01e8692d451bcc502b12245a59933f722ae923f591f4268792b154618e467 +Msg = afc595de08e9de221a59d897d5180af3282700e5184cfbf90f12e7bb76118d1f856f0a205aa780a849890bb07483f7a89b1e301935cbf989bfe0e19f54def3877ef52e984cca3534a47747f0dbd370f583f501a784f33f846fef584e0e559b6c405ee78e03d96490d32a72a13393dfa489b25dd62e4b33b1c6483211cdfeeb96 +Mac = 0d9556246eb7d1c36640a11584cb1dd48cf5adc66981a24b81897d1db68f0b62 + +Count = 146 +Klen = 128 +Tlen = 32 +Key = 0bfee65c1f56629893be1addc27564f1e81c6a2d8e5f393849d81415a4300e605b88d8d4ca17d711a414799ce8d6ca28113a42148e45e134710a7fd46bce5dfaf86bffecd7f23ef2bd94995d4ac3ccc83c94a49ee36811ddd5cb7d19e29c5cc34a6f04ab2e2fbfc445081f27d083925bd0f336d47611efb9dbe3b6ebf1e23442 +Msg = 40498dd91b8f781e78329ec1950cbf8de15e6ce403c124561e5fbe72546206db89adab9f69ca59c5ac2422259877227dc88463c02d09feb152f083b1e4c79bd57170ec3c701a3da08270db2af70f3b8b943ee04893d97f55ec8f62e6d34e0a8282fa185938656ed7827c9179b9be51e0ccf3ad243f1af16a74a321b92ade9a09 +Mac = 1f87f065d03d36b93280b6026bf48a834da01cfafa12b90c7771377f5d895915 + +Count = 147 +Klen = 128 +Tlen = 32 +Key = 42aecfb0ed85032c792b74e759945c06b1a7154ec6e32ce5b448b6585f75e7e2ab0ee0ecf060c9d0a84820e26b5050b11e1c868a6705c03e630327259cd09e63354a9b6a681a35c133937f034ddc152a5f52f40d71288f28a2501f9c1d9f3a76482ca7343ff9718680d53a51e880d2f9de1108e0ce95c02ad9f946c4ca2ae2a4 +Msg = 504ec4c48effad524dcb70d3a2816dc074805a81dd84cfded2bf07b6072ce5f30d2035bdbd2235eedafc53c6f21239e185f307656a2edf806d67a7123da90aa686fec0a75a3d10d1d52493e501a63aa1f78692ef4725475d9a99e8cd96fee96d0211eeea2bfb47e1866ab69796e679e9106384863e120f5ba17d504fdad38a31 +Mac = e6c9f32e14fdb19600870ba8ebf650e40a85fb9a89ce7b48e7cb7e29cfd6007f + +Count = 148 +Klen = 128 +Tlen = 32 +Key = 03aa9b8a2aefdfc59f5c779e720e1eb64b60d3d75c0b7738949297fd16dd87fee923b0c9f10e2aea1e1a8e6ae33f0595eacfa50006a1fecb696fef24177dbf0c9a7b685ef7ad360de24991ad2e2117358781ef03635b592036a189c6e5f3b51f7e7a6d5026142bb653b12b6f3bfd7c1d8c3f58e65d80b1c064f10ceb6a8792be +Msg = 5619fdb97cbf05f4174e787d13d2be6f30deb3835589a03228b76b1adb9a0aa348783de241ae7dbe21f52f51a7e41e9105b6282f334e38bf8978741a8d72b7000aab410262caad9f24f224aee144d1fc3ca6943541c3fb08f8536e86399da9cbc13a70e1861b7de148cebe5b69fcbdf8fe37605e26f2d2549bd1c1278624ca4c +Mac = 09628d811b3285dc5349305d8fe6a868b0b9c5d9eaefe4c1f9d5de250cc753bb + +Count = 149 +Klen = 128 +Tlen = 32 +Key = 28ffcb22dd9ef0e43ccbc98327f4d215a80520eb20f1a5c4a18db04098a5b398af4a498bf169779c2fa2327aa35622c0d402a6deb9cc1857215c522e53ed719af1a4d90122207924ef525098ee8f2f751ee3c15213a9ca705358ac35ffa02fdcb6b6816cb6ec7ce6448428c34fc6819d50507a2d74ae4175fd2ac53ee5e576c5 +Msg = 096a4c817f20206bd71b682920fcd3fba6ad31cac6ebe0c4000287474ed80700b42daf541921b0fe55f7d0fa8b1862a2b95b75188d834ce37b0a0edd0c1dbf4c79e76f4f7812b17c568b4fc746863ca5f9c3ca726e0f1d100c0de0d2ee3636987e1ff43b45fa0d2b01604e56f84e4b4c8d6d99a111963d93db9565ed9b2d562c +Mac = c1e67187124dc3e16d3df7a39ac7cf2013204549302f66e98e8c3e63b237bd59 + +Count = 150 +Klen = 128 +Tlen = 40 +Key = 665812a554fe084339553e3cc29dfa8996362e2943c40568788bbc61761bb3c2c132c4cf1bded3aab2e2a6d1995bf7e875a3c8b97976f7799453124ce8256c0c7f23714639f53686091855d56183f77feb8b321a7a0496c340a902ab41bebcd307f3c113988c5a61a5bff050045d21d761b5145430b609d0e5533485682ccb9d +Msg = 8df0a3673278e26064cb6f688022ac2a0f2e997341b6edf29781663cdf765d1265029de768ba759dcb420c900d6df5d57ba503c4a48e5fb30ee6d70527b079647e91614a337acfc6ad877d7d8a272fefdc7e8bfb92072ba5347ef118d4fd9ae7416596987dff176371636937e09981fe9a7fd822f26a7a507110597ccca6e825 +Mac = 2031305f71c69ae3ea4d554727f83c7d9c485765968b19796bb0187ce04aa7410302e2fb09cf4b07 + +Count = 151 +Klen = 128 +Tlen = 40 +Key = 7108c0d1e115bf9d6131dc37052b760bdde7b43ad5b1828fdad1d6b63e6038a85e5a816a82f4e3f7042f297bb5ad40c17cc3f7ef40d1037108ce46336127511301ca2796a97d43d95075ddcb7d246a9af552626b966f454e8328e0718138cd94a18139bc205be92c8b2c7f912639fa7d8fbb7d169f36511091062cd8663ab412 +Msg = 2c723d78a66c536494cdf37da0e43e2e171a09c79dd5327e209c34b40a7bfa79bba9f151366861381a2dfde5d501b94c1427db667dff5534a12a52022cef0fe95fddec97c1b2c353117c783b7efed1d01b5588b58ddc9fb4064cf402782815c4025855d1af1320ba5f038b0805a42fc413ee383d3333b905384a433d54edb512 +Mac = 826a2a11380c260873663815ff5e02201a17dedca1b20c613d0dcc019095b444fa0e96c8b2df5433 + +Count = 152 +Klen = 128 +Tlen = 40 +Key = 96391b89b1d2d11e09c44a069c698901bc159fb5084034f29ae7633a822fcb81734ce231bda18d717b28eea70e157d3bcab65b9fee9ee38cda02818e7c63c7c20c6dbddef9207973232df06f4aa30ce6c6caff12794fd69803a2510c349df2b8c76654994d96beab679bf867385b5d891a193216909d369e7d8f7abe932573ea +Msg = b4e7da4b48d74985480b4ecdac6cc6de523192614ded901181ccca1d6d19eecd4704ff694ea349575c369a83baafaf043972edfc7e5952bf9efbaa38eb2e06890dca6af254b0c6f44c0b27b692d62fa7e79fc365838a03deab987fb58629a7e72dc084ae0107a6a541135e2ddce82d1083407b6503888cb4d22cb15ae714bb2e +Mac = cead49b07d7a98bc40e3f9e484bb562fac1bf5296f6456f22196a4570924252618cbe524a249c477 + +Count = 153 +Klen = 128 +Tlen = 40 +Key = 0ca2ed9ccda936e0e5fabd1eeed393b4219d516a767c59a40c245eddccee27504a2b8ff8ebb8d1bb4dd302e3e32cdfcde03fc9e557e20ed2a01a6aedfd33cef87d105f0d21bfc2d43e5097f922e843ddfa11f38cf454def0a00aca449c6fd1ca70f865c1b7e79292801c834af32e484c38bad64894fb4f67d59b84c8f1c9b930 +Msg = 4f472914ce9cf0ac7f663c06f3be53a1c2b1a188da40ad7816ab4b4113f0126e3f8e1028328ebd5842c42e0c51538b1cea6fc30d8d677e3546e2542084683c332925478fdeea8e39a9756877c1f2e17da1c268485b7ac8cb2f2f5a495cf178023695341179b84a95dd00540feaa53d0b0e30f803ed837280f81ac5824190ae22 +Mac = 5dacef52a951847b5b26922bf7cc74c4ecf3708da5005615a6df512fc0edb1485bd8efb840c90fd0 + +Count = 154 +Klen = 128 +Tlen = 40 +Key = 0996b05111989bfc10db56819c2cc6464d52e95dc3fc0211ebf7f7bf7fa4f7e8ccaa5f83b8e8df9803aed90acd2c09b5592a6bb810fa5914c9abf4774780c65203a0a6312c0fdb4ceddd8459ee9e37a51d1ae863ae450c446071ff4803c2a3d337e24b0376f7d74155d220160669964022882706a5c363c83bafdedaba52d693 +Msg = e0ae386c4a7222433f63230fb8a59742aa66c69b2e712155e000c99e84d2514af07ec5c92607eb56c0b0c87291126691896bd513d9397075580861c9258868638ee2d8d6314ce21f61dc151fcc99264f5ad8edaf58c6b1ffd541a5324cecb2208482777bb56a8f04ec8c12feb0645ee3e6541757f23f6c5a1f539cc14126b9e7 +Mac = a93d059bd930f765514c55d0013d96bfd55abbb0c0432e898bd20266b64605f07fb9824f6c50f129 + +Count = 155 +Klen = 128 +Tlen = 40 +Key = 4f36c18e476c006a2d8e603e12f719738f6f262d065da3202a387aa5c23f3e0daa6a57351aa0605a2a2acd2f9668d12dbfc27f2bf3e22f2eee202382a13e6a0a325605d4431049f07718848332d0e317a1429335fb582736064f3a56dc69550aefe213944b2682d41b41cd616f9718d83cd5ac74a42754df78ac0648fc27c6b6 +Msg = d32f136a92049bff883fd5d1d649162da47fdced7032bc9fa5f29be3700c2115cf516b2ceb1900e2a78807167910b76e79370e40b79bc6b3d2338521c6d754c006035282cbd8a939ab63c2ff6d22b5d51cc4048a5a3188dff7caabe8c2f2d8b59fcd3032da477f4cbb596e555b88faaab5ae249300fcea6a3d4077000c64973c +Mac = 42311c23850d5e3460fca8d6870127d01ef4932ca6899632b92c895c0fcbb44e03abd9e5e753b983 + +Count = 156 +Klen = 128 +Tlen = 40 +Key = 3f318aa4d4fccb3758f58d2d05826c40fc4d38902d9af99876d830610f7560f525f7cd17c5498431fc529b8e3dccbac90254db86b6bd4d5fd3aaff22485cfb391dc8316959ed76c02464ccc82939e4013ef9e18e470c5f2f5745b46f19b8751f6fcc3d025891a9ca1753a743926ff1cff865d412a62f36ee4cd1d7b24b32d78e +Msg = 22d3f7d1a1858d4cbec9324a3e1dfbda03abfe12dfcbbfaeaac8ebfb92e749f4b3a5edaae841afe9e07adb18749a2a6137b3f1124f29994384704fba9717fc0bd5067803eb04fb47fc7cd439f1805d1b110e2e77d19291beedad362fb73528faaf7d00a655d659b03b5583755ed77c51b6431b090c0f8f660c0608239b48b40a +Mac = 40a610d31345105029767e5843d46024239d903a744fe37ac4acc7a984330afb3e388462db552d78 + +Count = 157 +Klen = 128 +Tlen = 40 +Key = 5051b7f8c9c7e9e1d0b55d0a05426ef23e0132e6e5c5fe759bb72c2521a51b64799d78c148bbbc5c7f3ff69b3ae2cb1fe96bbbf7ad7da61305b38efba9ef9ec1b6ee6b330c207b56f4b7041007fef5254bed3a659efa3c235831a8e82c8772694f6c19b7dc9f2cb678460dd0323ef5eaacb0389780e5cb8cdd5b035571189f46 +Msg = daa147d9448d45d7a0b362127cbcb318ba4e57608930078b94afefe97940bc3f7c66f7c87dd6917927dabf896bf308312cc29bb13c28e79388ad66338f1eb97f197afafc25104e0a23e1b968634b37facee908cad4b54b4ea56fcee9a44325b318a6f97d2581a310fc91f9b64e0d68fc068a44b5371d5b4253bfd0119ff52764 +Mac = 4aec1c3858a3ecee3a73be5211e0b12331a502c4b8dfed805f0b2ff6fb14167eddf5cd2fb1048ccd + +Count = 158 +Klen = 128 +Tlen = 40 +Key = 7cc8dc6957f74970997160de77a2aca2721a4af337e2f143c3102f6eca99f5385a6756f6bcab8c8b9b753c966782fbeafc54103f7f887b278965374388b1bdb662c8c9da5bef603238e512a0a4bb7dd8d4e6121567931c0b903afd1c7676bbcedb14bc7dfc69ce4db9e96b63f6f63a5541f6d8deb5a8d9d71eb80a625e91f969 +Msg = 9954cc20df9ddf553407ab15c6157423a2b247e9d5c83ab2d10ef519132271c103d700471cd08e754c4e26b99e46b8d516b719d7dc3a4b4c9edbffb12f27582a7486f27780cb2323fe0a80fecfa9a3cef5ba2c42b0880627e670ecdec8f32b0eb309a99654b726c610e3c2cea368bf760766891097dbf3ab7478c48a28ad72d5 +Mac = 9a23a86d0a12817e32816a5ce93c9a0e80f01862d06c5b4d53d5e8329202d30e5e3d0117cd44951e + +Count = 159 +Klen = 128 +Tlen = 40 +Key = 06e7210def086f58b210a7010668e0d25c52a4421c1f4f4832a3b871c9e61331561c1676d9d75b83607c06fcccf3a73dd7a362f0569e4ddfbc181906e01ef5ed0085af3505201c700836bb3616329575309d6708964a038b46d0f46ebf3d61490a09346ffb497ac6b5250dd66c8c711f6f27fdb0658b3bf5d6b291d1eeac20ec +Msg = 4b1a16d7a190920c470b13f5916893f06da3af78849a5b018213d423b101d6fbcd0310cf142ed5f09c0c14e5e9e48ac5bf3c36e5359d0db30b96f0e23d03dbc8d8905f040d7852638493c505f38f36bbee7d07b401902f59fc2230758ef8499915c7ecbfb5f7722da7a60e9cd4f0ff9aa36e0a2d0ffc28b9fcc07c23cb688737 +Mac = 4121e1c375037dffba6eb6814d1f512a81d6009cce96562ca1f460cdea0b8a59d0a3e3c1950f554e + +Count = 160 +Klen = 128 +Tlen = 40 +Key = 1731bef761d689a566db84e07996b85523ba1bf7197f1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca630937f8c8532dde0416bfd06b658896fa56131a3e59e36472c8b7c8e8bf0c5eaa2de2b3602bc3be748d021675b74162b9b335104780ae4af3acd125cb25a81cb24cdebe4b4bc3a319a896a4e41b044b5e9dec +Msg = 2726877bc4282dbda4db6564fd25c8bbbeca5cbad39affd7a5e8091ee13d2d847b4ea079f22c7dbcd5bb69738665737b3e0f3dfd514c6142b4d10ec8bc2af29528ab5dcb62a8a37d02e9c2c1945844069bfd67a8d62c7cc2c1fd8d445ffd42453723059a9c0665a7324cb875ae660505dd7b21e4e8a11700d653cdba5220e53c +Mac = 61b98a431a1b55c2652520f2181594ad39273da29c4ba1fd7902af99d234f5cb24ce75f41bf0a5b3 + +Count = 161 +Klen = 128 +Tlen = 40 +Key = c071c63d6574232cc3183b2171ace81bbf4cac24e16df5854fb69f366b12bb9864038f665b39dde9c563696c1145b5f08a0a0f217edccd88a0b3d801ab6a677048180db0329df6cc987b6e72c3e8a2a4f821abb1a000c864a6d1eb7b2162785a3359490130caf53c03095219cebd389fd13688bd8d016d8129b9e28b141f75c0 +Msg = 0f66d0b45095ae1b59fd2db7780135a1f52156f8fd1e5d29df5f256d7b94b093f69976ffb39dfdf37f83aa0d0c88d711a12726e90f3a14eae761d159eaa74f2ec1639817ef5d66c00332ed5212fafc3a6427442b6eb0f76600709639c0c904c5d78cde05ea1d0f0c4cd29e8e729dcba2a7eb5bc600cb302493531c14e43ff7e1 +Mac = 06c3568bfa7c4af9d6f2900c80afd15d6880056bd42d38620fcd956d36555688f2634ce632bf2006 + +Count = 162 +Klen = 128 +Tlen = 40 +Key = f5c15429b2ebf430282b8e92b0c76162a4fec17416ec6a65c2ad14db42c5470e81bf7188721536290250076d4b70f6f20a8ec83453c04c9b833decb977c282ccfb346d8b8586e31f24dd886fb3f240a052b842dc17406f5300d9e1802c7bc6ae4b666fba5406a41a761a3b1e5015e97664c457f5c932789521c91bbacbb9bcbb +Msg = 1c72ecfb8439d9ae3ed4eff8fff3aea771692ec3852f11b90aacb6b87f33af5c25ce768a593a5b9b2132c1bc05f18a9420f2d02876fad6fc88583e7b266b7c9985668ab79150ddc7844f99b0b82501f4b9fb31909f5e0f249b877f53cfdfd66d63c2924bd583487b90b1dd9ec199f90d660cb9c3a763a4776abfe1082296a71e +Mac = f5dca0801674ad8f4654f195437367b1a9bc5afe198b85bf539898c6fe946fb0ceb19f590e68aa04 + +Count = 163 +Klen = 128 +Tlen = 40 +Key = fa90796c79d6a728b50d788e35b9345b109e5f8f9bd3821d44182fe6be693fe85fd45eb3c687ca1dc02d57376d7bb7809e05f85882574eb78241131e69720ccec848ee3999e720b62289c3781c15f0c115f24053131d92287a7908622f675385fe9731e4391e3359a2c8c4398baf67873c0c4068954ed6d7f569179a5a719d75 +Msg = bf92a10983b14561f1491d3b837724b4ad7105d91ebe847544a21a280edddfb9f595aead3d90831978a627b44d761030775982cb1094fb2110d2ce4411d10e0e555badb60978e5a2cbe2d77c6bb97388ee789735d9287bf2acd34c42ac3c1713e5cde94c70d135a5f2e375bb65a614641bb78c3fffe0cc901f8fdc4b6786c36f +Mac = 8dd24a94d6dff09273336c22b17f2bf5a040e16e08d04dbe191d8ad084ffa4e52abf6e8111c0b642 + +Count = 164 +Klen = 128 +Tlen = 40 +Key = 733abf560d9f3733e221f37bd6219ebd8cc9889486a0f1d68e5b830e55f7202d5b04de7c0e4450d536740813906a59c7b960622d4e90475e5201c2c6d0a0dbd9c192f3022fc907dc9bd533a59dfd75f0ca8fb499da7401fe0b071c6cc0283ad86e8b05d0b856e5b1d9ec7e1943037a9f85fd88c27275a42080189ae96eb6c592 +Msg = 76556fee3b6a456a0c64558a00cd88df726730c85428f796c58315ede6e9c76dea90fc926d7351d9079a3f25209b936006611f653c2cb01e16d940e982646c4129ab289ab774b18c76b2c33422040dd8f97fe2c911ad318eeed5b73e547d732e5a2e5accc0774dcb82344881ad11dc8d7249dfbc79b4622e7800e3b4033ec47d +Mac = 4213b34ec9ead8721f33585d1231393b38d1c1fbe59ddbfe2f2f2206910e38d1c964a71a92959f3e + +Count = 165 +Klen = 128 +Tlen = 48 +Key = b619d9d07461c11bc9fb66117d61ed90001366bbffdbff583556777584b0d65244af5c7bdbf3b7358d7c791b966cc809760e57398d1896ace72d26cc59a6904fcd92365edafb8af7986c7d90b2af3bfdbcdb1593c78fbe8e3378bbb0c519152bf9cb51c19a02a12a8fd35cb6f8b3ac337a828711d6c8e0c4c13e1e6af090cdae +Msg = 5a81e711adfe5077dd8c8b57c95e8e1f3de39f4fc448c523bd3e7c72b1fdacd6e489dc0d2a34a39ffc6460c1cb962b7a94a30c04b5426a75ffcfc69f0c4ba934d3a3da2e7935d56d6b9079a2a97b016d653a35c2cc0ce19124f887a617c951ce4e58493b4209cc294f983cc20b16f63fd52e8451b1ad13bf5342275079818deb +Mac = 8b4258be4c094aa4056f332ede8c733772664b088ba22ef8caae7cefd77eceb35e83af8d9c1283cbbffe4a372b699c21 + +Count = 166 +Klen = 128 +Tlen = 48 +Key = e48825a5503a6afe0bf9a240c67f27acd4a8f6993834645e03c80c72dd370cd2e10071a3ae18ef19bae9d697ea9a4118609190cd95361907a7fa1b58f499f3f5e79b935f12212f437dde399e3e6490244aa1f5e38ba9be2433b6ce924f6cc49e9f627321a5df9343fce1b59deb647d9a3ae00b234414ba7b4e020d67173be693 +Msg = 8561865ac2ce12832746f82584a4b98e7f4c3ae2410e18196f4e3b475c62ae207d3cadbb1d490096519888db2f3f18e13bfb86f62216015cab8ea491ea734cd3b791a7e45e4f8e0b98d7955bba77e0372d4738161e0d5d84765d9e6a0d05a88e1aa89c5defa864e9e349462e8f14b9993d7a78cb9dbad69aba0551582ddf6958 +Mac = ec780a915ec7deeba2c8c9e2ab15c9762a3eb18fafa2d48a554ae1fe6c4459da1a54e2d58bdf06fea0740098eebbb699 + +Count = 167 +Klen = 128 +Tlen = 48 +Key = b9280949918c582fa63ac4c68cc7a0e74971435e08035aef12f98397f9e51713161146a736666a18918c95fafc536c325f5239b368ce3b8b81dd412300ca77c29ebc7f542b93c36a80130a81b4444a879318bd9b4b4f37156998b7c604f93c813870dad9d7db0c2d5a154ce21e62e1f0cd0df9a0194ff794b1730e076d380f56 +Msg = 9b1d9b8060067187f19e09e2bfe17c11d0092dc1b7b25b06c43bf2e5786fa7153b65430651a43f230b8b92553af1c7c8e90852f14c8724d0f3087d7243ae02bb270c0f6203424e3dea6989bf1032bcbf82c96f7a140042dc9ba9cafb5d439be5c6daa69b5d28c65df600952828ed847e01162b65f964ddb225e78087ad769b1b +Mac = f9bf35de6f3888828b0acf7da8d2a8848c292a5ab9e6e2e3475d665d398e5ab424183e9beb4db0d7accc6315c53bf0de + +Count = 168 +Klen = 128 +Tlen = 48 +Key = 1dd0942297cba8157069925114b832018fe31f35450ef6e2e382f22a950abdde7a9c8642553c5410851e9abf370b0b04da05af9ad32e373f72e68eff2534b0b4ec67bfce0dfd545009c3131bce3e826f2e4a1baf90019f64e6deae85df2295f65d77674e29d44fdde6a024ee431a3e4975f888fce54ed75b25b27a46299e13aa +Msg = 8428a75382510207600c10573c4c0f6056a74a0b7cfc33d7c559b2d9821cbd017258299e357abf24032c932d9e7991bf853259cd6b914d00e71de7b76dcd514c7d702f991a4cbfba7e0625150cc20098868a414280f43de515ff012ad83fe5d50d3a644a1a112a5038636f166e6e8474c077ab72a46c2c0eb5c9a53aabb8a225 +Mac = 8d032500ea94fd8686b465634d74047db687a1d1e56fc17100f40ea0f7e3288efbd016daffd5d3c32fc6988996292788 + +Count = 169 +Klen = 128 +Tlen = 48 +Key = 3dc1c0cf6978292dc6389fe87e96335dcbf493165b528940f867c45f68f0db4092498f2fe33a516bf01304d75dfb03f2fd8566093a8481acb821ae5e352a4d90b4ad08d1dac65c3f98b554410a3398789f07a7f27bd461a11935c80c350b0745e916b41b16c3529005451a8e4ee7fbd5f9a1df38e4e9300964cb9ad22f3c1345 +Msg = b5e3eefd6fabee2f84ac6b7b98ca4493a1ef4e49410b49ad54591376c5e31ca4a5481a637ebdfe31e45226434e77d42524bedfa219e2a8e3bb0950db484628e2c462699f48dc262c9d2e7e750a5216e16985c735804b93b58fb3de8c26dcda6d39b8447b76104e66d6c8dcd77365f20f99cc6dcb1f4cf26af8df255105ad1b8f +Mac = 40d43eb4671e6840050be5fc38c2709eccfcc47388c380afd52331dff3868227377550420ff176ff97088cbf9c5aaa05 + +Count = 170 +Klen = 128 +Tlen = 48 +Key = abcdb92d96bd11e85ebc4fbd6f17dc8417701e188cb59bf53153620615a6a7b8bcb4ad53231ce98afe49645144eb61eeeda84053fb0ea2abb7cdce333d23534b3a97efcdf5eab09d8c4b598180ca0733740f14b5324c3ce5ef70fe51d09e454caddd48421411af48912af7f72c9b177b340d64e73b55b2cb62a4bc09d7fec6e4 +Msg = b5ef6f15a59e24f357e578b50c0f6016e9c0b70c54d1ca42a15b19c9ee125c0b4bd5c5001f8385a4c70f91a87fd7a66786318a1d7d4796531026719ed9111e89811b39d029f57dcf08048a3955b6e50d671741c61b9ffdd3764eed468bfc5dd09fea53ed8c9c155c63ebebd2555626efd4996171f58107a819fe162acc7a22c7 +Mac = 3802d4c92f767fda5187cfee5eb73ae20b6bce00e8cfdde4879a0f8906ccba8a0ae3d4fb4a7f1188c3ae9b1910bd07cb + +Count = 171 +Klen = 128 +Tlen = 48 +Key = 56cac4042da649666fe7b1efd4f70f72b55435891687d728e35aee787a465be26a2bcd697a44e43eee59978e0536d39fc65d641bfcf819ac801123c8b605bfcf5a3615537d015fb6caf04dfb0e30a8d6f84537051dfcdfe33ea10d3bce73595aaf5563683dc601f88d139dddf6cbd83fd17473ef7e7c70f8a8737477c97770ac +Msg = d292a7d9a314845d0468665d59ae01891dccaea88b59bd989eba0d903c8adba9ae40d89d540b7ece9701a38a1e794f8d45b5cbc7cbc5fa60caa7ecfaedb3b136dd376b79fc5ea7f05656eed1d5b196e4b40cde4335ef3b5e97f5ec41422dd41a46bf89f503d3a9cb29ae6dbbe41e8097501911a233a12798ebea34efa5bfee5d +Mac = 375d68bebc28b9bd0d7108bcb9cb779df000d15090ce6b188ebd3b80cab50c431929ec374c693ca4f08654ab378f3648 + +Count = 172 +Klen = 128 +Tlen = 48 +Key = a797132ce5971a3a9152f0e3521f9de381406a2be0c53ae189ac1da7244d23205df66eb096d28b84d80f03d3103f2c6378ff454e53d7c206dd62e59782af8e2c4ee654d5a52fd48734cf496527945e3d9c7440565871f669b9c0f5edec29ef9760b1ed227b779d4c8bdced21ffe6d87bd7e780ca59597e11060d7631cc85ee6a +Msg = 30accaec827d47ee5aa21603cf62b6c3ee29331cbb7d47e97334c5c614e437231f9cc6989dd15b78609b04a98b2299b355529f1609d76ce151458c80b59664d65fda158c212aa4a8b9de5761530062314f00c22d45a86a9246539da0655a9bab76d07f6f166f68a4ecd1d7d22ee458676698650776da8723d9c6becd2d1823ca +Mac = 3ddf47cb13e49e5cf054bbcc073636f30b05dc9ad979a017cc8401d3f1f7f83e3034c41db41942a671b3d3dd706b3619 + +Count = 173 +Klen = 128 +Tlen = 48 +Key = 657fcef962db04bd269ae5fef2cbd5e6558d072946d235e8706394d4cd250796769a926fbaaa121b6da42cfc82808474dd672f9362756af252bd8cded78d39b9ddf4d99e24824844934fcf25d03e54df0d83cdda2563fb2be73b54b8b1c4419d429589cfc9ea0dff41a3b7c20190adee8febca47b6264e5bd8e8d4aa8552850a +Msg = 989d5d6083c85c2b09be202c60f1277b8c5e471fca623b812fd05b218d42ab8896ac177e4437fd7c784cec64e1eeac701f4e7e682899a419eb152402346cca50d0486c0df11f7194d4519448a070e68592de12d7579ee56ab9640ec27eee22ac8d97e375532ac15965f4a13e671ddea32c388dd31e18065ee1e5a0c93370bb85 +Mac = 4f1283e5446483a4f8237650572c8a7694d5f8e34086e81cea1f5bcfea345e33dff699a36aabaaf95fb2e0ec6e0e3b03 + +Count = 174 +Klen = 128 +Tlen = 48 +Key = 900f404d396f4bee526db4c9be701896a60d85bf1a203b15fb1cafc1189fd67d974a9f0497cfc2c6134bb8e109d70a4ddc59cf56f8a17050b4b1af867c5be8732f129635c6fa183e3741b64d98b2df9c8887b45bcb7fcb5e34312c13c8a0a0b6200f2cc80f17d8bd85f6b4f5b32a1ded703f3db7dce5d1a743452f50449587ae +Msg = 7eaca1335bbbc419f930bb7562b9090f50023d84f7346cec26bcdeb98e4d08e26128ba42209b9a3baec7d19ea8a704cff94e8624a870cc8ff524217da5e89afd9ae64d25a676beb1a1e39aeeb972a8d70aa0fc7d6fac6eac97554acb5be549044e6ec0a5965418c6fb0b7e2d3e22db6eac810756f2ef3a8a33d7c36c584bfc3e +Mac = 52c63558050e88a4a934d389c9d973f9901f2db74428d642a750b67d890910d7028c26dfe1e76010a9b12c95dbdbbecf + +Count = 175 +Klen = 128 +Tlen = 48 +Key = 3a9f2fb04c0c42b2dce178313786aa7713256c96c90ce2f2be53d5ff22bf054cdee7c1c1c795b625186f05e21fd7980d360fb5a1f5a1d30ba6feadecf965961afa060ce83f688fa76608b46cbf4375144575cb86d3637f3894d63cf5bc89eadd754537ad1c4b7640aef2ad567d91e995289fd5cdc9198b807024aaa2d1f4a99d +Msg = dce5adde1d996c50f9b061ff8777f9b0450343475d675596272bec73eef9520df7988580bf1f95a685624e3008b117f692c21a8c35eba5165594d05d67ed6122f7dcecb2f03a3fba183efd5dda3988844884247560b75aa88e1c9bd573642652e5982c9c37523134ba2cb5ac837914016f33ab2b65353cf3dbaa93059cc66a46 +Mac = 27808650572d339546aba818c11e07274bcbb7ef5b46f5a2917d7a7014e3ba58b5c162d2dc4ba6986eedc62a061b981e + +Count = 176 +Klen = 128 +Tlen = 48 +Key = 407cca4b390ceabcb37c48dde081d1b53ef41075ca30fffd71bc1da2c72ac02ffb3ead290b53e65834fbc382ade6447a9405a65a29ee340c3a83600fdece12776630403691bbbf9bffdc5918e83d1f480ee90030f0b29bc641d052af98caa04d699aacf9340c1e8dfc673126fb4f092894ea48828942dc336eea1a0d5ee511b8 +Msg = aea7ac414ac7b81df547ed95800cb443ae141cc731a2710cd59c10cdfc3179574abea690a1f39c3850323f6f87376a770ffe3fbc37e1bc1112028f3ddfe82cb6c96d1cacd1d7984908455638014da36486e3b2028a7c34d15f7428a029adf512937ab69ec0bbd5d98549dbf8d59486907c8a1da110bb00d325bb83ffc1c8fcf1 +Mac = a205326b6c4959d91bcf22e97ed4b447977e2a3af7e1f7db41e493521ab6a218a868365ecffdda6701ea4dee48e61bf6 + +Count = 177 +Klen = 128 +Tlen = 48 +Key = c8d18c4707df3ce945f3d7d58d39e73ade087abddac37978c2fd3643a2e04432c9cf8b5f7c4a9be9ec12413c658e5893c76ee2bc3a8e581b1e1d3ef241fef9e0556ee5a7a1e8a332f645b0d6e5283cd82f99392f7df0b28c51f55e983d45757c53f8c2a7dc80facb4dd44c2976cf390ffdd2a69f0bb12fd145cdbfbcfe7d5d11 +Msg = 09e7dd407526d478b4f6ff64e4cb92bde8cca38bbcd9254605cd193ced0003322d119b4e6be2c635c7e3c470b194ab14fd4514a23920142c3e6a6eb9050606ebbc3b99df19b7ac55efd3c211ff18d2811002f89f42056b199fceafaff3cb0cdddded3ebb27ad6e21534d610e7660f04b4a8cb84b7e8f1256508046e75e57fb52 +Mac = cae7cf6fcabf725e2c23915795a8ec62262fb7c7cfeaa93def9079e7dcdd7bfc82eec904312a588c03ee87c43df6f702 + +Count = 178 +Klen = 128 +Tlen = 48 +Key = 8dbb6cdc769851fbe90dce3183cd19e9cdd7893076a6fb7ee0a874d3dff20806bd32fa5a81e5245370ca99c8d5968a38fee966628781450fdbae8733f705b8347159b78ab9e71888a0d1c67916ceedef381f17588ac595d280f1204144bcc09eb318ed92a806f4437e0a9d6ed0dc0bb68361e33b07d9b16fd95a87254d7de7eb +Msg = 8dccd462fec7423d3ae5abf8649553170019058b4a8a05d6cc1c456f2fa3db685256b34e99d381518864faa4908144272896ab4420069516326fb8d1db308a5e6928f94554c15dd0d12dab6ea5f0eb55379fec6beae73667a9d04033c443e395facb0f0fd798bd0440c9241b4ceb30e955bc30ca4f35cf0f59c8455f92e7ce57 +Mac = 5704dc3750e47330ad7dab4910be0cb5f7f74dbe78f5c9a19ad718e71aea72171fa2a5dbdf7cb5579beb97930177474a + +Count = 179 +Klen = 128 +Tlen = 48 +Key = 25fb23a07e55306e77858cce34f09edf6b49dd8a74548862a0f097cfcc54f16c3699dfad8f79c1c5515600c7527d430b9aade6d371d3a82ebd18a31d8b1d82f5ec85ee0402b549775ad79f7b7c25d9a3c164348a65aef2b9dd7550cb6bc5b7cfefc936ed0091304d3b125234db6fc8708b77b1f7786ed0cba910842093d3fac1 +Msg = 97710070793d827315be46998cde98ceaa8ac00b1817d6d4d3ded806dc2afacf32553dfefd2d437d0c9c621b8189f78fcbf9fdbad57ade2d7dc188eb4892c47054e0c3f28e36fae6245531c63e1fd612e9b3969553da2fe93ea27f3daf48e156e65bbad4931f4fb74730da212967dc5dea01b421fbfe7110fdc8e5837915fa89 +Mac = 13706c202ea2e52d614c90dad127e72ee959023d9ac45d1c1266c67b63810d43c44067c36c5417fe8487980b703d8809 + +Count = 180 +Klen = 130 +Tlen = 24 +Key = e62c2ce5ff8e3d465d344582f2dd566e0d29ddd6205184cbc614563a04f524c3cfa328c7cfb9e9c363a75edde5f056bd2f97189e5ed346a5d60a077186fd64f36d41f3805ceeb324fe9b383a17890839091e44d19c958b37fef51bbd093f39a5c5ecd4372e96651137f619bf0e0e328ba2a7aa9663fe1a2848bbdb4517226b81e18d +Msg = 7ac240b4bde64b6b514237f122dd773a6adc2f2d8304a449fa7bf28ee4cefd9b7538a914ce224e4617e6660eced889f65e879ca2f440456b8ed4a149559b3af62cb9335089a0c60083d7f1592df96b822300ddd862c34f8e5dbee0964d12bbc5c8cc4632956a9ddfbf9c3e9be8470626e0cf5c977696acfb8ec0173f743a6850 +Mac = 984e2dc5dd3274865d0a658e1f6d2eb0854db75e1e02937b + +Count = 181 +Klen = 130 +Tlen = 24 +Key = 4bb97c7c53368716938c836519e20d6484a7e6a1bc794640e046734280b191080db7bc128d92540d93dd980d6ffa7717a2b1a2e29519e6de8abcb976d2f61392409e7f61dfe87155e08ada6fd61efabc26c87520b818aa52f3324028e92c0115ceb7ecf0af0285f660db7013b7183e5df73587e18f3e39a305ef2fe02d1b06969e4a +Msg = 4fe1a8510ab36b97c613d309b5b7ccb243b328e7029d3a88e3efa082acac6098a647376496c02d98ef106d8a46c754f006f4c8e76545cb3b976f4fe241d04cc9305311d44b95d820c6469c8b99d12f76313f87c965585838ab0ce9c58c12208655cfdea9107993b5b27c0912961d84cc2a5d0d94e9200b08898e133475ba0158 +Mac = f2722378f02bf8d104b3b50c77d132fa35ac86e4da34f1c8 + +Count = 182 +Klen = 130 +Tlen = 24 +Key = 9f0f91c95ba3c5a4a867b84e5f61a81e4cbf60c433c65cda100c2ebca3e7209a2c251bcb74fdc7640c46f40ad9e73904d18fda94ffa6ef88cd83c30c82df7bc20a89f815f65cfecac36f95d75f8baf79e9e20c81b8fd5beea0f7a2c170e9df0dbfa5f04ee9a7b0fb5448635ff83554a41e20bc3167b5e63611d0918476ed96a3d5e0 +Msg = a24f0a863531d225b7cfc907fc7d87b47ea06b61acb68d158496f40a63f80a561c374cca4856461bde42bf3f0456311a24247c5a4173daa08c8416e0329af90a79b806ea0bad674d914e26658403a06e408537925be5480a34d15d87cf13a3d0e05a9eac253d1b02f97d663f278abef8fc4906d1a015bd9da60430c6e16beeef +Mac = fe1f2c8f6af31f96dbef868d461631a7d159d47f6d081eb8 + +Count = 183 +Klen = 130 +Tlen = 24 +Key = 560d76c1bdde2e56ff54567df6713e4e243c1a42f7fe62fd4bb1786a31b68c0defc6bd95482b80b1fd30462593d6591d57c807c1a0910309540d08d3ad1dbf333d9fe30a309ea3dad2c548d8511a1743c3e979f56afd59383716ceda8e98fa8449813247ff9d5e7886fda3beb6a540697085b605dfab2c2ffeb611a85b8e03a81a52 +Msg = 5a62ff7ac98a6bd1324596741a5554b7193f1eff8e3965ca914926ef29acbf26bf7501cad37686deee63444fd83563780acd4ceb66da036f26fcb645132a96b0f751e5b4543d501d56bd80c30702ec0dc249f1b4eaba24c9db8fe7fa21783a11e93ed4bdb4a77395539b705a0f84967c28fb34e081a071e19949e095bd605451 +Mac = 5030272dedd382ba3dc06d2eeab9e163a325ed293bd6ea3d + +Count = 184 +Klen = 130 +Tlen = 24 +Key = 58ab9d7a7d912959917c3416046bce4d8c8c81341a5de1da0c1165b1a435754bb993c461ac57e0199e700888e0393d76ab599b6212e8eac634d3719db6810a2171b67cd967b804d3fcb1352f635503dd56c41aa60ab2747162c52abf633e8a79e8dc6beb96fdbd101307641073064707f397a308ea04a662fcb0392191b61dd885cd +Msg = f83e9f155362ccfd8d228911abf7b5c71d29cfb1fbfa5a528e20863012790c2abafb5a0cf5eaf061f04d0a895ca27f0b71d1e92c335f06c0f4e45e401abf261d22086554e5c655431a620cba1d5c5b56ef3df70a7dcdd6ff2585dc9e7647b7eb374d0814ab60c349144ad8cf768d13509d55407661ac94b829ed4873ae7b873c +Mac = 2090dadd774fe71fd9617b2595309e1a024694d295bab147 + +Count = 185 +Klen = 130 +Tlen = 24 +Key = 26bb5e3c7ca428929e0db5d1731c28df597f038500f499197f0fc75aa138df9b80f3e5245664fed58f12250c23eb20c92288b21091b3138f74269d812c96c8d203f0588406e3d551139e3c9232dbf45f281c03f84a348263900a4e57ea9a0159d73c21253329974f503b622a49f48ce993c25d04d581d0defa4243a4844b7278235f +Msg = 49a46c7b476b17bef5395f08ec18bb496a188ab2ed944a1a01b60aa1563d2293157e218f74a907e8894eb54b5b20a1a23ff8ce39621dfc1fa2c21cd0a2d006101de66e1a7a9e14faa1133c380ea05eb623ea1edbc3207ef11c8153ccc41ff6ad08e33b6681d2a7bee88edd162a205a4dbff462e238253a5818fc98dfe5b35830 +Mac = 8d93d5f35311234c1ed500a0baf3a64cbbd20608015ff59a + +Count = 186 +Klen = 130 +Tlen = 24 +Key = 1a4e62c8a51715ca8cd3c745ac05bff02a48fe5f9fe37d32799eb58d9ed464c852ca8f675a3fc34c6144a12b9c4e9a3faa8af63bbe701b84ff9b0c9d2fd830e28b7d557af3fcf4874bb7b69f2116388090d70bff64a600427eeea22f7bee0324900fbce9b8752fe312d40f8a8485231da5d94694daadb3d6bf3e7f2cc83f67f52829 +Msg = 4715c0ef816030e7fdf591a65e40ac9dd9eb95673101380ae5543579a81cee5d11e0dd14949a2cfab1167fe86b9b15fbfccd0f97c7d20fab8eb40536e506460ae6cbdfd02793284ce9e79ce292e7e7595e3241e05106fb4e70a957ae30079dfb2f9c6b2822944d630e318d9bbc6e4d4067e2d24ab7e6237cf3fad3ea72651bb9 +Mac = 965b9108e15614b899c23af2712058eed518965019ed8ae2 + +Count = 187 +Klen = 130 +Tlen = 24 +Key = c20eedfbffd65f8ed00a0ed925a994627d0a76e5b4669ff61c970de8d01fcbee456c1f80225b040052fada9e57925d79e1e5d4069fb48ab6558482d32fa267ab5565c2f1bfb370604bc652a10c30466fe51d56f957d930889892d661e55e97ed18803e177de789f6e2f7ddaced8c378eb33c668585dd78b30d47725a9b5b44fab945 +Msg = ca72a059551913018f1082fffcd93014a277ec636b3894e1cad3dc07a1b24cca639188cc7648d4d4dbe5d77c10fe9f293546e6406f5d94978aed852ae2f28b108359b7ad8fcdd428e0ce351fef03b19af4d1eb3e4f2cd7c427ad79a951e5f02673f2b462694f1ce7e7f12352608f6b4f274182c5d54c654eea3c42eab73482f4 +Mac = 29d3481d3a4ffc24f5b832cdfe7140058d8488aca2011aaf + +Count = 188 +Klen = 130 +Tlen = 24 +Key = 4f52b7f2ef19a88156ea68ea5f4053a9e893cf18342bd4e28e35abb92f17f54c6201f073e6c4f6ad94e846cd41f807f0e6218ab2fffcd0a230a74cf32e1ae974ddb84fc2b62562bb6c580c37cff13df3f0cc30ce86d6ef38901f19e73c31e3cb08a15d4527e3f79426624390cfd0fc9a4ebb48d392623a8cf6c69bfe2104ea3b2ae1 +Msg = 03785732aad68bf0a688c39dd97a8ca6d48a9cf99a3db45ca6b0cb0430d26863add1504195d2610e68e5be77f3382c37d08bbc302ce3abbacc83863b521891f8bd346a2a30fdea55f4274cd5bf1f91b9378922d5b2edb81340ad790aeb3b64d23d88ee1603c0ed6a5134b6dfc69882d5116e1711b4c2a4100818ec9a82a3a69a +Mac = fa89fad64a287027aa65c4389641c7d413566e92fee79be9 + +Count = 189 +Klen = 130 +Tlen = 24 +Key = 39e6d49c3d5d23d2746d15d616bebf3cf720c6e6012a71cae22002f5021a47d0b8636ca3bd201357e132a680fc5dec9b28a9db932d08ae8b3d3a37d7e2ee754b342a69b94fec26b50412289bcf77e6d4095faa545f15a16783d22eae21e18464150174e6db0b837347d440307655d56f0409db307f9773e81cb19282a93c9ca4c3b1 +Msg = 5d20020a5dd409c7e5344065871e57e01c91a443501dc8bf619890fe231319b5480c3879dee618d319962596539e2970513fb5c0c8eac3a71ff99962779cf1d7e916566d0e29d121c5cec5d7302a18ed00be9316f3de8c669a64c2a960a588f9c8a42690f6867cda7146e8ce27aa6a7fb27606eed9df6a235a42d17ce7162744 +Mac = eba38453b3a787ede274e9400435b1a11b4a751bdecd3b22 + +Count = 190 +Klen = 130 +Tlen = 24 +Key = 732b4a0b9be5c5e08cfdf90afe1c800a7a77486c6b9841aa7861584d114ea95548faf0dbe3e541f5af74fada1739f546f4750220a7db945b6697ba1ad38f5117d3e979459dcd45b4116cb7b54c41eb4079969292e94ba21a67d34c96c57f2f7abbffcb91f22638e65bed17e5c5bbcabeafe3e00a5a6ed3b1231cf60b10a5a945a944 +Msg = 08ba7f516b9cfac0c0f625d111b8031106f91b77098ec09aa9db96203ce9527ac9b9c1cf25d80c355b343a27512ef634a9f093f4e6014d40d016d2a2192c010b40d3f1c4b6cd35a740d75e8f9cc7c20d67d77c5d3e41b498240c212a2325cb8736b1161a67a2fc7e35889af138aaee060856df9a5a757d086c628ba1a4fd3b56 +Mac = 2bbb7e600e9ad59bd4dd2b47714309ed53f0f55e1741ea8c + +Count = 191 +Klen = 130 +Tlen = 24 +Key = a36eed3e91b717f21d56aa25036a5e7ddd74bb3296002fcd21885e306b95b9d78e27525d4757ee42aa3b5ceb140a06ea6280c6806084fb608409dbb6dd320b6846b96d9cdf91397abeca4f33e1b6cb42674adaf200c6cd20a3996c427f7e8da833ece50241ad1d23c0cc280452b5d50c5698a08e5f0ece94e4ffb9db39c3681ebd87 +Msg = fdab2a03a7a1b55fe050da9d5f661f7df63c07c3685b89dd7c40c1c54f5ce629ee5f7cca24b6ca2291528f49fcacf119eb06b69170f3b677451990411b369d36306122d12093ca66fd655307a11b87a943e26e834956c2b75d47a334c3bd8cdbea3986e1413e9b744b108ea1f6bcc975295897629c8c93e5ec526166eff99b60 +Mac = 4b5571d4f15c3896ac39caed4d7aed73fa6ba7fe84afa961 + +Count = 192 +Klen = 130 +Tlen = 24 +Key = eebb4ed3f628aefddf7ad08a9679aca962dd6de66bbd17447c4a6d8c08bd12e46b8eeea373e7d3641f58615aa6cc27e3bbbc0a5f10a2eb4219b1846812c393a943933bae832ca702fba1f06c2cff417d348039654c01900b96b6fe5c161d58e2fd30fd992edf70fffbbd466b2ffa439f5291c0a028c24fc67bc3a20f1ab3a9b822cf +Msg = f186cc9a3877e2de21e274f0cf6a67b5e72f2b6df5a33d2e0b99f191ab9f6eabe68efa3fc65f7831ea402e3e70e7cceb1827aabba5c152a5877c3ec5b878e352e4bfeed0cc1dcd87ec3271335bc552fdf45bb4aab3082913618658d57484fc49314030b71358e9c670dec4375aaa02d3c4f4d0a2e522cc5ee2dec627a76cc378 +Mac = 95a4986acb7cda7e95775adf7ed7388e0c7b54bef073e5f3 + +Count = 193 +Klen = 130 +Tlen = 24 +Key = 350ed4bcc51bb92c5fcc6435688ae8ae2afc9f9c657eca4b06cf799e3609aba396d7b56ac9e2e818348c6e3701e175506aca90bc348459b779515cb6ab6e30fbd644e76625e2a98ea8ab9b10544c05274cf2b57d5fb99e41d167c57a5e5a5e9b7cbf3157e10543b64591b36969b4e25b58dad688ec04e11295787d9156b67bab10af +Msg = 4433ee59b964f1cd20212245d5e95162c6837a3b78f1ecf84ba0aa9dfee11223759dbccdba43a5b943068db673469d55624b4d43e13985d5b94002e53414fcdddf9d06118def35529f7c84bf838877df7bdeffeda0c29e732626cb1be12198c1089c92cc3a4fe9bfbeecd10b0f99272898a458e3bc727ffa19b9cde60eef2ef8 +Mac = b53f7ae9e9c677897739b85a8188d35c6db029703b6b5153 + +Count = 194 +Klen = 130 +Tlen = 24 +Key = 7464290c01b494fdd96cecb8a07110f04dadd5758010fb5815d46050f906745c3c42edaa68bebcb812893fb9ae15b83aa8f4fe05b0df724555fc35ecd561985233d4d41e8bd4fc6aa3de2f22c2e912adc5337dd06f3f75cf011e5bd50aef629581a2473211013c5cb4f025bd83f30693cdf2bc9e6639ec3c41c33ad341b8bb6f4d34 +Msg = 25dd3a089ae04bc7cc3e97eb85e6647847a45c3a3e45280974fb414c440303bc1184046b38bba3044255e4545f1c7b0910d626ba236a4028e44594c492fc6f711033f98addbdc4274605a69cdaacc4431f73f07c835c35f1950caf1f7574a01289b0c16f722fd6b83f1585cce0dd68addd43618648612eedf0183d65d7b1c127 +Mac = e0f9223c3fb6ddbf6da7e51b5d7ce9368cab016c4cb34a9b + +Count = 195 +Klen = 130 +Tlen = 32 +Key = f3ac4422cc724378100d7515ddfbf3fe340002b7976c43acd69c2acf26c3b18173eb4eb6f73622540c6a73dd3eac5c4ea58cc34772428c6bc7370c0accc8c1feff4640d2cb416e2a5d06f35eb366ec69f5b9e0020923f6086216652318182ba93ec702be701a90c0abe9dee261b00b16cd9042318596e9494e401b62333d594ad975 +Msg = 04a3c1e89eebe7b99ed3bcdaa3cafed8956ee8da93acbfde2d29a845d4e1bc928e0f5e6fef4cccf144faf51c11e38baabe1e58088d33d5a2cf7ef96058d94f7030754b478b09dee2fb2f4852e50a2e77322dec0c46b82ce336c4b87235028c8f509e30785c6a44162c385c8307870fc958634beda886eb2ccac38c8455a59c76 +Mac = 07f73d066eee1780fe9488ca2f024ed56600920f6e0c728640d1f6b53b24002c + +Count = 196 +Klen = 130 +Tlen = 32 +Key = 6f67acc56e8929e491df252d3c8d497a6fe7a662f6d691bbdf7db15d311c5629db340c4aebec71bb00b343090227bd5b103524afba829d66710a41033b087330ac15710211932a7dee4c505bab57ad098a3cbaf3dc576e01758254615deee088c85203734848fd3342f373a89fe6c18dc34191b4c31dad93d22b1100fd9745391933 +Msg = 4f34c874a909e1a3ec1869236116995baaafba7b02bc8b54c6bce76e3582a354742bb633d4539ca35889fcc572ff888e0e862462d1ba4be5a37aaf0e6b9c207d19deaf0eea1f13aee7cf4c6db0a486d5778e3f7a4feeacd3a703594811a4118c4935fd2d72d40f6aa2d3a244a16b5ad8eeae52eb03be76c7da3d2d46b0043c2c +Mac = 0cd3c2f7ae6353ec7d70ce932f3980cbafb77159b2fb7a5c85a1cbc3a566ba86 + +Count = 197 +Klen = 130 +Tlen = 32 +Key = 6d82e6fb6ac5ad3b3121ca955176ec0c91ffb3d1358416117cd102126d68437ed373a8ff87fc620bed60ae02c101b476143caec9919b4cfe054b57c91fd096e874f7eeb6c50cccfe854ec80d96a0820b5481d08bd43e1c606d6607b2787f525255f7ff4baf5eb3ba00d25fdf57ba1f7359b7633c85d74ce0bd0c59f702dd4263805c +Msg = 95be84de7f82fb79f493b3c7e378300f094836d76558dca8ec16e2117f3544ee1a0b0feb4e377443f1861bce1418ba3a35bee598b6a7281b8e3c531d3f481563085ccca25b729c4291d0be61dd2f1b1b7e1d1a0939a0b607071cd33b0b76d253c67a630d8e7a9afd3c38468b26077e3b4d2c7c31d78aaff4bf7f0b72cb09a444 +Mac = 6ce9ac951ad8b75b3c76fc7e82b498258a58544cb4ee50bd5c96138f37b1fc33 + +Count = 198 +Klen = 130 +Tlen = 32 +Key = 54e6051ab2d16e9654e96a1d91fd16a49c3c7377a0fa1a200fb12b8a37468766168e3fce6f114c281d0e804ea8bfbcec16dd642903671089f4a08411e957e3ad316a1fd0828db45a494896be3f3f67643db6ee4c5154c5f51127517d2fe9f7094e828d6714cd0ff2819f94b67f0680d5bacefa2ab14aa12b0e517a1432862d4215dc +Msg = 6250c2a87119c8b62794baf18496af65722d0b349d25f53984d10cead1085583e56d7861b8f32dabe0a1f138ef93fdad024278e69705ec989fd7f734d55a430e4d1cb7be5019efc66782ea76b6bd030d8bad2321373334411df5d9d8085e5c54c2e6e888e293f84fe5bf0f73801daacd35f772ad25b9b77c25b31a9f131b899f +Mac = 9ca65056dd811103ff8b38efc557d9759e0b7ee19c7ed557aebf3b6fa9a438df + +Count = 199 +Klen = 130 +Tlen = 32 +Key = 13ba5f52beddcbce4a797694eb05caf10463ee0490b8482ac07c41bae5cd48f391091932f99b3f689e15d7cc2d8098cda3ef104bb45b30066eaa0b571a11db1e639c45fbba0bdec1f8e0ed2745b673c139d4682f42024895469cce4b89e4ffd5d09c6b15c7d5b0bfa0023f0efd5063b5103a7f19005797bd8f7711fdfbefbd002131 +Msg = 7f471a900ee49f2cfa1d3eb37c951d810c349364d4cc3b5b64fc479da75517dd16bc0bcd2b0f95e1190c9255ba6eda71c958150c51f7d14f6564d2bb12c7a96d92c289a1c20d5576d75dfdf14c8b0b431ef2794f3c19c667399249564521c4a45b213c15bc2408739bda298d1a34d98075c866357d78412b494e527728ab8f09 +Mac = a7d699dc5cd3405ff692db8a910db64e2e2504f6a3da92a65830a748bd89c2fd + +Count = 200 +Klen = 130 +Tlen = 32 +Key = c8608386aa689fd9fadc56b98ccec4e2fdfa050cf3fa9dbfa6b91769a02aedaec13aa8ff8503486e8a42e6c04c0b98c433bb95e4d12f9afa64338c65a33d5e5bb75c3580876bcab8388a103af4cf18e7eb3831d998e4533e4683be67d20cde1cb2ae72333608ed610e9c1c4f0d810af02d592113d28391345392f698b6fd3599bb17 +Msg = 267aa69989d062695016065f0282791ccf578a7f231e27107b33cf9f78844928319697facec9261853dc47e0b9b3e3ea435869330f410c7becd12ceb6b2011fb39ffdf93ab37c6709b127aca731de334872b15c3a89d8272f5e16ec5f539a4ade3be68ac49a4ac39d1bf87665746e2c042d8757715bcf2bf416d7f753e566a06 +Mac = bc0c2deda203839165de872fc54df9300e31957e115483a57c0d370f3404213b + +Count = 201 +Klen = 130 +Tlen = 32 +Key = 783f153f2dcf9a582c3776ca094984112081a2a4d93813ce2b1b22b95fdc08cc172710368ed8f9cb216b9c100fb3cf917dcf887bbd5b4666cfe3ac73289d6f97b357733616ae31f436815cc8fda5c4525bda7a6e8afe35099781f4331e19e57655b786664bb90a7a7261fe1a5c862cf9c289c0a5ca8ba95d89dd4222c7b83210032f +Msg = 5495d82b4e44351ab1cec03a485e4a2d00c2ba49a81cf7ebf5db090dc9ea7b1bb4270303bc17658c59d894e8c4571a8c71c3bb3fda4155717fe10bcf2bd0a21478d02b2295e6e351475257072ec4cc894acddd10be946620d3caa1153fe08fffa8779aaf64187812832552be0f0f26cb92ca6ae4d97ef29df88013078e800983 +Mac = 9deb737429c7b52b6a51489022a77bf3bafe73876d38c45b749cc65a725ef577 + +Count = 202 +Klen = 130 +Tlen = 32 +Key = dcf32810f1efc1db0e5f6555ae9c954b729518bd74ceedf7d9a984fda5e52e2cd364d11fa631e0d03ac18aff5e7932d8a67120d0bb7876d0f65865952d5ba057cd0d11a82944cca0125e4137a8cab5f26fcaf3c2a6763e29d4058b9ea348ed33f177517525306b93bfbdf0c3349606e2f826f95adcd22f499a385ee0aeb4fc096829 +Msg = f2c0a5bc165710222a9053d9c9a193fcf69487f7be553a3c190a0c3712a2fa8327b1205ef37b7c5a0a4ef55625169cad7f2b31ad7e6de94b96936e146bc028673557bbe26911d11a964d198f8ca790dfc4cbff39fc8cc4152230d622730e0480e45c7d30c14295c99432c66c487cf5f98e1df78380d8540284894b4874b51637 +Mac = 17c459163a9d421bf7dfd4bb1577fb856760f789039ac84859df13526d84c55a + +Count = 203 +Klen = 130 +Tlen = 32 +Key = 8b7cec45eec9e4000eaf9ed1e496f1fd2d93b0e1638c3636eb9d429390bb063330977af9b5c5f6b1471e0099c1636320612381edc3dee923106a2ce47396ed14cc0e385fa97e157d72fa5cb4e39eca9fbf71552fc38fbdefd988648c8f035f94c7a7cd7eb03b67ebf50b592b348e5103b147d5ad4ce9d921b0be9193ce49843d8a2b +Msg = 24c631edf1b1bca7ed767d72a73c9144485494996cbf141830f046738cd2f88fe40dc7e5d986922865242f2727da5cf6fbe2f848ce467320b1a583a92b341861d403937d1f82328a7843cf508f01cbfbf3e2457de2f98f2e600fe2b586a3502c1d2ffb7f6bad85154d5ac7b386bac69d57dce2fe50df518965b5cc6144278836 +Mac = a26e75b00f59658aaea24d3b0f283e280e820afbdab1f255e00cbc8a284648c0 + +Count = 204 +Klen = 130 +Tlen = 32 +Key = 332d0227fd1f7a1282f8f5d5df338d7218958570ac6d7e3a6c1beec28ccfcf69fb939423f08c61d6c67c7b04098cfeaad149ce684eeccfe1a5de5965fa7be6cece170ea78c3eb6945e4084ed45ed96ad699e738bae75416687e539e60f74596156bf58fbf8bfdf12f54cf6d9bcdfbd42899c5c22f1903c90bc37788df2418eeb3895 +Msg = e8bdd28c63fd43e497ee0aff3296e63384173ed4e084ada746f3be9940d3f4b10a800e44f51588680d8265aafade2c0424fe31091b46156335bf907f796a6e87bbd4d89109ebd516461011a5156ddcd8f9897588ba19893d0a1af7e8681cd6d545e1b9db652631d689c194574becfd9949e194b785a7101d0c2b7a3cd6923383 +Mac = e5437da742ffcc8fdd58dc08b68d23d766be75c3ff93a21d98b048b6d116a70f + +Count = 205 +Klen = 130 +Tlen = 32 +Key = e199ddb8612936d2e46b4e301a1e772b0312d5a903e713f9381754fe0b376d900579511fe576cc99ef2a758e8640de93fd900de4abe7304d3d068c4a50edb76d405907003a8b4aec994bb7d96f2d259761137bbcb9f3688fb6da5425263196ca3740e7a38bf016918ad5fe57fc6bb600d7a0077b559323894a9c93d9b58c72709536 +Msg = 10af1c219f304fb2b6cf06124a3e7d9c16d8f3aae1d9096303ca6cd42640b3434ac68bbf0c1811fc27927f5e3be70b54cd160ce78f9a5f93e2e109559a001d0501a5e1e61e4d2c7c37b7129d9498c3cb8690b1c1a85df14c654fe45cbafb165b3d3466bd5f3768d9ee2607f7deb86faa482e2a60b389883793fa45120f9a66ed +Mac = 7395adbb0c4efa1e2bcdbfc55407ecc628a78e36a32085bc897f28a9d8e61e03 + +Count = 206 +Klen = 130 +Tlen = 32 +Key = c3d9b6761ea20f88ce1662c1cf561c699022c96f9af1d71673409debc22a9cfab33904419d7c7a65e3d918a418a5b50b667267e930284783f658740979cc5bc9206335a39b1cd0bdc6709378d0e5bda29ce0eded67bae79fac17958c44734c41d2fe51835eaa9cf84082db23403dba96fb13626289cf3fd35c26075a6b47f8cb90b3 +Msg = d7859c229eb0d77abb3015c9fa2d2c959981e0ab076dbf6ceb8a49686802542e9fffaf617664060f98bc053fbe6fc0c92c3c536b7ee3c518a42233932ce32a3dbfb4542cef77577c305bfaea230b8a9e1b257c49daed53709b43c40856d218423f8bd3a88f52936988f63af1b3674fbd6d23a26ea1f22f1cd7d345ec6e36e8e5 +Mac = bffb2babaafc27251a4451f262dd3cdd8d9d79b9a6fb3ca613b3ab6da1ac719b + +Count = 207 +Klen = 130 +Tlen = 32 +Key = c1ca87f626ca3716770d0fec1aee4ecaf2558afee02f51eb891b115f5a663520ca3a91c8df1200d3f4714bf7b9d44db47be5552ba6f1cc33889c18aa57d4bf097603d03bf4897fb056690fad9642f5e66b823a4ecbd6212eaee50a74163d964e4c8d0cf86c16fbd3235c21b6b8218c884993ff0f58c59703865cae679d8b0019d441 +Msg = 182cd2ae62596fad1c4695ad0af75253c9e73aaebe3700784c0b47984a32b5ecb4054946a091efb474f852055714f288e55e7617270e4354c2844d336ee72db9aa0c7503af994089a26a0da40d33cd4e90673a29d4596bc4c1a2a519f1c2755a640afbed75b989b50c656d93169c0a2c32cc2eedad609f4db12cf752b90bb257 +Mac = 8abd962b73c97b9566d08fa5c96a51c7c53843ebd12069d0066075e0980d17ce + +Count = 208 +Klen = 130 +Tlen = 32 +Key = 455b64da72b1100896812d4b3d78c162bde6efb7691fc7e20921636f87772fe1eb5d88f68924892d79d8218648216989ed673589ff39ea2a25f08f21cd8f263b21ee3ca13618bf5a87f11011a31c5919221b21aeddb81d7e5fa44968965f3883ce57a862e1545a96a7132175b431381a434cd8ad6d640ae59f87bbca4aad0ec0dce1 +Msg = e7f20812443092e998e1b61788e95d2c70ffeb49faf97587f04a2f964ec923a59cb429827af413037da228a439cbd4719f709d278ad1599694ec9e492e407b69f0d665df2d8274b9cb67d0cf51b966a642c7df94aa38d225f69438be080721808b62a66f84631fd42a3696e0f83b7b91000a98da82b548febd4de43d05a77fb2 +Mac = 54ef0088c120d11add7ebefb1dffdbb6ad31ef6556215a1625c641e91955ba51 + +Count = 209 +Klen = 130 +Tlen = 32 +Key = e402c12a30cca01deb1f5826828bc8f4f5d72d2776464fb5321af88d6f57aa7bd7c9914c1348b7329c3b776ace5b341b3fba4b824e03454cff0352430668f32d21c9f6f1abe7a7fc6f3345e3ba90b34ab4597004efa6c97c41cb4d53cf22824a6b0bd6632030d8430a0ea8db6bb1ac47fcbe85f681b7420ca07bd304f30cc09a5c95 +Msg = 9b8bb10d82b6d109bacb9cc75d8c9e39e696cb0d963907281787ec5060abc728d87de362be530b30c8194afb0aa4f5581a43eb3872971c5e15a54817762a0925952e14fc6bdcbc318891b82ffb33252c72c4cf5ba237ac63e982a91132f4a9491ac9cb4351fcecf4425c6ec9f6e2379b3542fce0efc0bf1edb4596a65eb2af7e +Mac = c4ce885753645790fab556c3e1ddacaccdde386ab7bc39283d4c84d3798df5b8 + +Count = 210 +Klen = 130 +Tlen = 40 +Key = e486316b3ac5ec100f43c0eabdbc0a32b3b9bb6580580a332d4f6698d02faf495ee6a551c188a1fc2a4f83f4a9e0ebaafbcfacf7a3667d043ca2f2670d7fab8ede75cc610a43ac23d6ebd29901fe1d6f9c1942d71cb07c73ae0a7e75ca8dad050b3c8ce33e7e774db9219523ee9e08493f9f664d14be6d492b90f20b30e21b748e42 +Msg = 7a04f851d50cd135256ef044ed740ab59e964565b040edbef0d568de1cf36cf5adf96feff4c65f5468c4946c3f2603a63b6db43ac731760e421ed1d79b3d3c801e7490cf8d51bd467303bb47b5a9c47c6ad0c176ec3602942fd43127521c89d374804339c93351d2ed334f1e7887b7ffd2c5545f49d8f919600072176a1abbb8 +Mac = 24ed011518825f9d39d06a2523271521dc7949d154d6cb378be20ecc2281b2ceacd349a61a2806b2 + +Count = 211 +Klen = 130 +Tlen = 40 +Key = 0ac01a0605adf7c608264ebd667c38790e36363ebd6b0d937270d40023b44b17aee76eb112624a7adfc310b0ebd7682747be0791714984fccba7679c4c4184cb76e2874e881bcfdaf4e680d61389d36318bdb19a4310811457883eb04d89cc904af88c65cfa12eed2fd6c6ba47592234697d5be19987abe4fc5a7ec48d54cc6f1273 +Msg = ff5611cc449662ecf2a04287a828ec0400ee6c4b15364ad84278680d2c582dcd02d8e34603cd5e0e4190df72a5f5380b3481309290d728f4c274ffa9369c344207944a427e12712fd5f262e9402a8b3a2e006cadcb7b41a4ca17e1a563bce6f597f10e68bb4ee177342f949380b02eb976d5e947ce08db0ee3c9d5a8b8a18c0b +Mac = b96936dac473277b4f7f632730dd16a8fbba0de0acc0213cc44efe4af6f381af6c0fe5be563e7072 + +Count = 212 +Klen = 130 +Tlen = 40 +Key = c08eb5bbaa85ea0b2de93ae86fd6a26afd30c1c112db3d12172f638266a60d9053d8c9a76daa37f301c2b375e03e345262a57471ab1d52442ddf74e66ee930670cf2ad64fea345da1c042e3be2355ac2715e9b04d6e80bc98feeab194bee4a9af2c5a919e5dadc668799f365fc23da6231437ea51ca5314645425043851f23d00d37 +Msg = 66db82e65ff854365c79a601fecd3cc75318bc674dd5c0e673c02a6cd7f3b88f484fd8d4c81dbd7341f5b25b73dfae7631b9292ecdd92f30d1f3b370ef3c256d3bcf47b698503cad70d0e18ba9f161a4d44b04eda70e48bbade833cd3c29e78da8257793b6d9f96b53d2dd98864b7dd8a496f4aac3bd340e7068538ca5012677 +Mac = a6b6958979e726d66ed908188648e77b0b35b76011800199e40eeddd0d44f28a981aea8d2c335852 + +Count = 213 +Klen = 130 +Tlen = 40 +Key = b8fd9f9a77243dc528bac1a968794afedefb594cc02e7a01980227c14864e9fd4b70c0c73fe2c5e4a0ce0e23d792d2ee7308cd1fb600e61553ed100676de6e9605b0baa92582e776016a05dec76666fbf296fffbcfa8102f3a93085fa988a3616d2555e934edeba3d1f5707f40df4d4de40cb589140e4078d65cd674ea4acf830b38 +Msg = 0ea8885268bb33e52d2ae60a4398c81c28db6c302a5aa59ed6b99cbdb2b91fed2f593cdbd9420f00d161d86b7dd650c17e0d3e82e22a458d9bab00e7304851b8b31ef596f30d5c06f25fb8409aaa5533abf728c9f823aa6cd386e7c9c6d3d1d4843fdb0c1ee6c3007a6aaf1202dd7c7b99e1538fd30d7d42659378ecda204a49 +Mac = 97ea6505694b21ee748dc9eefbc753161812642b6574b9a66301a4d54e0ea090a2c1a487c244b7af + +Count = 214 +Klen = 130 +Tlen = 40 +Key = a32c359a9fe350c9cf5efbb393d0afba534c432cb92abcc51dac667541e224643fca0434bfbc16866d057fbfabd3c90c82517da3df12f44cfcb36a201cbc54917bc8f3ab85e62a9a463e8d6b22f8ba17c659ecbd5e2fcd2f08708cb0891e30fc406d2c895828330d41514d4060082be305adb7019e49f0752b2af5acf2ce5fac7403 +Msg = 3215f9112d9e2d511dfad07ba78bd5876fb3209e8a8295dc35917554c72dea54e4b8e0ebf44d17a9d3a376a6ca34a3c5bf9ed03aa849d84a464a8a520f87440b6c1cc50c24fe3c9118dea47a32515497982dd2222536e98d19fafb7f0ff9981930094e7da7f9c39154750200c5291382622ace5ee791f02d18696fe0b0cb0b04 +Mac = 540ad3fa372fddece3b61e3e0d7d9531c92a4418327dc0b152be8eeb38bfc92b2166bb10b243f8a3 + +Count = 215 +Klen = 130 +Tlen = 40 +Key = ce499f38ce5b7da7a4b0349faa0e07a26f9b12ad07e43b60a624665e6ec4e8f7841e3e0569860013888b10c50b7a1774f324321868e1e86b4dd5604b1872d060e13e3900b8d7524f3c34c1ab6a2d9147b23ee1155088d9ead918e3dd146c17f00c33f6f263555ca3e933b01a6d305e64d470876e68e0f724727657db0abaa3ec2e85 +Msg = 9e3d2da55720996355c025b8acf42140dd47b70ffa922ce80bd163afaf2fa321076399c3cf3fa118ce86411771fff6dcb3c7349e3feba8e1d936c0edfa486d7ebae828bdf39c336fa476216d93309854377c567dd4957230e81ae414c61c48ea8176df7b0b5cd7cf9e37cca05bb08e0e320b259501b7123b0023d80e5cd3bbcd +Mac = 435b5499b7f3e8e347d1d087134441b3b56fca7feb80befbf6476d1657fcde324991d526b5b4ddde + +Count = 216 +Klen = 130 +Tlen = 40 +Key = c5ff2dfdb19d7022bd4263e6dde7a8b3ddf3a0b93dbadd933e43d6283d4edfd0409558b9cf53248805035d43e66a456ef3d78074fcaa81493613434e8d1c39753bea87a59a3f7260364415a32786560d9e3e1944bdd5b495aca7a2dae9087ba1df84238abb6b42f17b8ef5cd4743c4d805afd3f128445cbec8885c95f8188d9d54ed +Msg = 43ba51cefe257a4fc630774174db94d14fe6e0df8a44d60d0ecd3d167a334d62683713d7f31c17f1765c3b15959be62282d9624a79eb83208d2c8af1a7704858cc39870d9e2ea5fe26c882a1d04f9d88b705793623a1463150febd5872154c77f529731909416e9d5edb148c2cdfff2a77d2ed4b914c6668e0ac9ff2e10a9fe6 +Mac = 319a7bc1867beaee22b2f8f2b6ec132247d2b81020fee310816049816c34c717f651267cd9070cee + +Count = 217 +Klen = 130 +Tlen = 40 +Key = 34972b6645a47e3d87c5a568693c2c4f7de0dea57f12e4f892f33186ccd51d53f5ef4f788c54e1be0b26bf6b6d06505cecd059540f851e94e489caac8a0f1090f3d113eee80483bf4e8b091da76be654dc7fd73b396d3bc5b9d877d384d79a4cb6a63d70629cae69d75d4d232151355ed3551f0204b084b2984802a3c11601afc4d7 +Msg = 0e072f73a09fc1ede5f39444b25b302ef1e6fad4399f6034a20e57c3d70107576c8cc445724e41c649f600a0b6060d0235d7ecaf91ddd05eb12d0e61b53cd08642ea0e3b19bfbaf5ef743bd279b51d7dc6250752d1a3edc257cc86f9e6c001bf3729f49cbd7a95407e752c2122f0c86649d8310422761f273af1a9d3911500cb +Mac = 3896072563c0c2865483af821f0546fb21cc1604eff53bc81b77cc975ccc53e3a696be832660b324 + +Count = 218 +Klen = 130 +Tlen = 40 +Key = b7622c1d4bea038b6b8d5331f7bb992ae59b34ec2e5a6932e8c4aa3aaf1118314a0146ec8c2b40d87791cc34a879ef7def78b32a3dd0289ac3fca94b5888604c1b260df55aff02d5b34772ec7914ec1a5a7023d83eacf02671f89ac4053154a572fa07a1800e526a67d5d0c1343599ea6eaa0b5dfa99cabe3ce1050f7fb4fb2597a5 +Msg = 9c359eb6a7991e6f11dc19764e6cd05eb51a61158ed986c36cc27ff5bd5c4dfb9f1b218ef52614b7ba5d18ec969b2f7baf38db2cc2d3d521724e0102e019a2577bb4cb351a6f161d48759721de081348d80e6e3461cd630230f3787217d93048d90882f23dfd8a6a60297f5e4f3ce58fd5a30377924f982e4db9ca8e8c235f96 +Mac = 5d7af8c97f7d6550b5d4f3dfbec8c50a43e583f762631f3020d9a9c9c0d6f3a152af83eac5353860 + +Count = 219 +Klen = 130 +Tlen = 40 +Key = b35dcf54a3cc008dddb7bd1c1b764f388c12e95c90fd899abc011f322577f163dbb93e81b3da21484a94b97046818781df8e17e99faee34c65cb741bb002ca681a0ffef92306269b304579b8d4a6b42c4df9bc5552b184690cdd310d625a7c23794758e37bbad52d98b1451d4b4c9de1df391ec7316f349ab71f9e2fc1e7cf3bff4a +Msg = 870f1b7e6c4dde00cad1bc6ac28603a2341db17d33b08983b7a566f292d6d006a6eecd785416f94438d2d9b013256d8a08fc04b10cca54d7986fca84a05e1f5ec9ff2ca9d752ff0a64d62e90d8a96bf495f0592072799fef6b9f3a34976e17fd5a08e119db4718d7b8a46311f958276943c158d34e068f5499fe5d095d4ee06a +Mac = 938bba0d6845a29865e47b56b965b2bc52040859e9ba9c85d92ea0186663c98a7bb1fa2102637344 + +Count = 220 +Klen = 130 +Tlen = 40 +Key = 0ca6d30a1ee6f05d64998cab5a57b1600c0e64023799e267ab952926f370ba4b38c29e4f63e1a74782b0f85b6db7c77aa979624c8c017068a2bf7ac85092aa79b726d297db80af7905d7702966a67217fcff4e0eba221566e34eda7cb7d7715f517977ccd0ec925db5b8fafd8c4b399fcf492f30072358c934eb522a6f679964ce64 +Msg = b617e6965eec432dcc4684bb749ed016df232b884600a52c5fddd19b77a879c8c1959029ee636818fde2267855b2729b114d73639b47faa87cd5fdda728d48e8c36c6f60d21d07d7f078158b744ac7470e54628758967cddaecd6b93403afd9265a56a8233a286334c133b3cfaee37e27f40e23ba67293939ecb030e0837028f +Mac = d266505b5ef935dd8013ca6ee3229c96ea6f571aedfbfa33e915ccd5953de0469331ea1128f6d973 + +Count = 221 +Klen = 130 +Tlen = 40 +Key = 137c94037fe2a15b39aba093350eb9c181eb1de36f5f4719f695821156dfabc2fb05385da4dd7980c41b1ead286bfafcdbbd060c47e0a93f9c5336277658b73bba49e9cfc02f8743b891cb7a468a338d701e81c1bace05b78f6a1ee3e327ff3f17f2af411d03530adcb4b0e0d694ecde08b794ea1151e4e89783422de7750b37dba5 +Msg = ec16489822821c1407092268101d992f7fcaea78343b226bc680a430d28e200c9387bfcdb33ca06961f188e2a460d56cef00b4d2f5869416beacdb58fb32d7f89723f7ff8e5a3bbb0244e9aa8ce8829ad024f40d543911e2928a40324ba072791f7258f65be3d454128dad896fbd86ff49be11f1f85b8019679f3c886bdfdad5 +Mac = 84cd11c51881c491f78034348a4250485f1b56c81092da410fa0658b05b5d3e715ddbaaa08feb6a5 + +Count = 222 +Klen = 130 +Tlen = 40 +Key = 6933fed3a66bcd401155d22f84725361139c998aec52f34b8150fd5fea622119847b5f0edf014a0fd76c535a000f4a10483522ead770f5283a2e47cbc18d8f042571f4ec6ed35475145c8aa16532f1f2261224217d9f08130ff90d086592b016943d45d61d88f35d124c006d7a824eedf7582697a68535f147d9d47e9e188d351808 +Msg = 6f85955d51fd0e8a3b261b0fec9783e1938c27b12be5f1140b7207e0b96d44d90048e88d42aa8e7c0fb45f7cf588865c9a0ce3c809eb046c4add515d352986b48768677c368bafce021f493a4dd0c2692c2cff01beaa2bc9bdebf40e523ff7452e6b78f1d6aa57c73ef13f109a7721507175e125f32a4f718c2358bbb9b97ed3 +Mac = 1e2c9fe55d17da4ba342480eb2d30e1ed4fc94baccb9194905dcf0350ca6b0eb5202366d646a10a9 + +Count = 223 +Klen = 130 +Tlen = 40 +Key = 9e75186da77aea91a67a3510458694ac908d0ae4562e8d6bd2cbc5d88adf119f7891cb406889cdbea1023353c720636200844bad561feac85d4312ce15006c5211adbc98d9c566058ef532d5cc724c0cd4908fafeb910233fdbaa33686ad646db3f274dec4d7bf4fb47ab8fe1c24569255d85c52dc2cde95fb580179a68d02d8a488 +Msg = ec94d16bdb3ead89ab8ebca0e0cabcc1503a651d7d2f5426224548f10ce490df2b0dc47ce953b4a7ba279ef4f559a44ee2dc7ce114ca6a37f9a76ba0afeab3d819b95ae433f5533da2769d309098bd85b6f66b5fba758c63bc85601c2ca3fd9ede22fc6a602c72928b04221e588df0adf5109960183aa2f394648e2d2a18547b +Mac = ffd507856b7da1d6d2ab4870003fef27669c2e06df3e628fd0b871b99b71663fad824f677bf2f2ac + +Count = 224 +Klen = 130 +Tlen = 40 +Key = b06e828d07796de7eb344a656dfa57624d19fabbc086a42870cffcccc5503a0a63aad09bf47150dd27258a6ef864f4fa335d5051338888bdf095dd9239a240063db000435058a6bbecba1ebcf6b717444360ab165bad430d7d73b5b1e390b00846685aafa596372843db4d76ef5a86e787085532bf5e9cc11f51ce504b8351b787bb +Msg = 3df4fe4187f59bcb01814904c90b4585288a37a721c163e84ac42390dbb8959405da91ba85c3defe78eaa534716a25f0c905a9a33669b7069fb38bbc2f32c433a96d5ccbfb67dd3a1521d22ffb617c3519b2c7dad8ac7c116e75b8d6fa889d10d0b547bb116902468030ba3a9078b31dc2987a962d111bd25e13942563438af5 +Mac = b322e829a7644f36f5ce147a9bf3271ec2578f474a465ba01fc0ce928954ed391e50e7727a0001d2 + +Count = 225 +Klen = 130 +Tlen = 48 +Key = 74f41a6b1c4e5713499557d6f7e889f8a8ce2e444e8261fe6a8e5518769bdfa88188349a19b9f3a26db26675b3e40539c8c63b3a16286ddebbc539dbe817fba7866f9631204471cefdcbbf768cc9043006a6d4cb4ec2decf1c0c2ab35ad09f50ced0c896fa97d87e400aeb3f4a408ec5a993825fbcf7bdb8d48bb208956ed28ba0d4 +Msg = 9a121482c7775a8b5fdaf1c2fb7de1a86ef931b1a88cf23ddbb47fc9dcfd0267cb173a6bf62b7c68fb6ff85b2df93e2539d1013f0a491aa9e991cf23e98656a082cb95f87c1b2cdd0eddb51048f94ad4aeeb48a426165321145a9b4ec3e85dff0755ac8f20ee71d2e24cb14a13280e9e15709147c499a68da23868b232cc1f6d +Mac = b0da90c043493511d94f22fac35b5962749c49972fb43571b8478764dffc1c25e3a7523fd405338a048d38dd1b75511d + +Count = 226 +Klen = 130 +Tlen = 48 +Key = d87fb6ba27215e5cb65c3b5b34ac2a32037f30e1f7ea603d5a9bff8a330fe74bc70529596132f6334f36c0952dcf9c4c664ceb48f74539f3768a65c1535902085fd4fe138ab18172f1341893185a139773582c5e2c4369e4201143d12bc0074ba5d57d0f2c08c8c0a43e8d7e7db757bb34893a4a1d4db7b95f18e0e140adbcbba3f0 +Msg = 9e1a5d9f236ef93f2cda60489166c82dce322327046644cc406b42e3005c2177f3b7af2a0159adcc8ba92f2cf413462e60b8db1ebb63de44febfa1b9adc87e79a480c0b814e3c17ac91c4f5eaef954ba929db6ed2c757df15d6d3430b66391993adb58f265f57c706d9d8785c7023df9ed497c3c5f8267fbe7dbc4f12213a100 +Mac = 3c7cee960221c9d9f7464aeb70d198bd60414dc3ffbfa7a2227a3a375ebb8f6448e524706e1e3ae95541bdcef2b31d9f + +Count = 227 +Klen = 130 +Tlen = 48 +Key = 4710d3a0a835d5913a96ad54499f2a5329a95150251ff1a6b8e07ed200e51b336f24f90ec4b4e0d539310ba9fe62391de719013d625b66cfabc1abd8431e69629e62de7d1bbf88843a0af2a10a63cf93e01845af4ec78b2553c3b685d0b9d0823b942bf5979df425a4e70b4553ea123e7c6ec5afd3ab893219ae47e28ffe7a1ab080 +Msg = c6cbf0916dce3ee4fdc3ade93875b2d3d6cb5ff627e52d7ff967f863bc154b95e4a1de7c8fc05da468836bb4cbe5e7a02aa16e1faf462160228ca8f80ee977201f604f1dcf9a08ff41378f8e6d662b827eb304f27821e50f1e79411213e174733fb04c5c7481c85d52871f61682004e19bac2957cc9f02f6b5d5cb981426ccf8 +Mac = b3b489532bd5b701e3fb7da0601ce9c94536dc3d8acafafe835c503b0be50a0e852b551456a328e65c76892f448912f6 + +Count = 228 +Klen = 130 +Tlen = 48 +Key = 2cb6e84fd408571c65af8e26743fed236cc3593383ecd41eec6f51dd4ea8c65d7683827f499cc163fca57ee68709886956ced8d542c022dbc1ccaa8159aa59da5bbf1014cd413cb9a89cab2e44149e8010ac1f5f8647946b5e0e95af0211fb6b433139174a3df0a4d15bbd0593aa56ee0025d5dc36cb53552dfdb9713127d39996a2 +Msg = 12f2890cdbd85863ce570fe3a418431bbbcd74deb16f3fa232cad6260e3cae588fba777509135172b2793d9bb43dd17a81da31fa67353acc6423000a3b2c7b1ac78f7dd69085e7e99cca1d7c885ab713d7787ab189f58643efafd03bbf58d37c6479837697b68392335397d045f75cae63b0374d40388bcf7d772f03c1481f44 +Mac = 4c32a80183ca3f1b5d07d91924fec55cd3c8e0a3719beaaaf3b7824aad1c1ef49608d5ba7a4aa5b53c244e896fec2fc8 + +Count = 229 +Klen = 130 +Tlen = 48 +Key = 1a8e273181755e05df15946114db513993803b32c4dd9610a700076dbb7f9db11e0c113ef54a4deb0ee02cb4c4cb81b023f85a434d1286941c99544109349e524d48066c46c980471b501162a36ed6f6834147289744bd82946b32a4eb704837f0678d233b99fe024e8fcad4796d58f4fb828a4b6a1c44c355a128fe27dba4494e94 +Msg = 35ae3481efd30d5d668dc0e147e6ff837d30a5465199f8ead6ff2b5f8405288023668cfeeb89f29ae9567498a4496f7001c487c664aaeb9c1829dac7f1d7679f2f0179fba63f155d1c4ce069f315df9c0810823adacfe188efd5453c73a8ea3223280360691eff0cc8180b3c7b75d86f59bc9e8afc32611522ab73a753a03a9f +Mac = 432f310947c3ef1f146401824f451025f4c24be8b4c92587a5c4263457924f426ceb8aecb533e4788d20fac0b25856b9 + +Count = 230 +Klen = 130 +Tlen = 48 +Key = c4b6e18a87558d2ce6a5946c65a9446f66cda139a76506c60d560f56a013b508d6ccbbaa14e24ad0729dd823bf214efcc59e6932cdc860306687c84a63efb551237223641554940a7a60fa7e6ddad64a21b4a2176b046dc480b6c5b5ff7ed96e3211df609195b4028756c22479ba278105771493870372abe24dcc407daa69878b12 +Msg = 37b4cf3789e40a62aebde9cd9cab34eb846dc10d057644e39f94693f6acf201d089438e1d81330df6ce54a203ef2e0639e92fb63eff2225813ba70c024ecea5f650f0f85788eb08fd15b01b06ad7f1f2b8f6b777df9ead05225162c29d0cea3b366f79abd11d317bc366370589240c9dbbe21bd23b448ef1b2a366cb3df7cbb8 +Mac = b3abb0141f7a5b4c39a1e5e6ef8bb64456200d42d15402be97bc516497adbe241cea596fc9493e91c84b9cb601eaa38c + +Count = 231 +Klen = 130 +Tlen = 48 +Key = 9147253adc883da2d831a57b55e742aceaf10ae4db91088b4095a6f864292be46cef831e39523f818f17dc24763448d0e0e6a2b78dfe41622c7bf9ecc35e996e50bab8bab10bb24cc1c8ed7dc43c61fa05915775bd2e709a3743ea4532a11ff287d04e750b5b9eebb76f60f006a495129f1bb08634c99d1aaa12016b7a9ac4585758 +Msg = fed888f3b12b8f17d450b4303279ad29d90f8ed71ba7ed89d83244e1007396e253b756496bc08421fd0219925c12a5fa3e5b373fc3137d63b36d2c580710a216acc9cbec837c4113ac61b789046c971cec0deac54d1a7938d90a31b99363cc319175ae8100490d166ad555be3471cbba6b8f7014c0a62833d06f1baca9545c5b +Mac = 380f48d74b2a6b7ab206cfee0a4c0fa5dde0fae81fd0240b3da352070611cfd45dd389f9e6b5570c8c202d4178cfef9c + +Count = 232 +Klen = 130 +Tlen = 48 +Key = da03db48559d2e361cdcf29eff209d75339c291ba45709848c76619745be76d35c556438e6c80f6517525bfe105ca050f940583850521b408021ce0cb6fa17f5f0ae13f357954cc0ced3e53acbda180a6531e383af73fdcc459a0f42247d2118bf9852404f0ccd8f6ae6f81cd7a4efe9a1f630c56ac1987002698e0138507e85f09a +Msg = 62c1d149567f05a0b76c4fd32d1f365d170cb165cfb38f922f1716225472eb36a127327007f8f5c08479ca7beac4b0aee26f3bb130bbf1ff390ef344c2a4e0b8fa81f6acbbaa7a620d945a22ecdd128a4b3acc2658b1cb41020809fab87d1f9a74b76624f9fd5c2e59a649f0b9d0229b5855adeccefbe60092eba26abf657283 +Mac = 35931980eb488506fbf05def3f501c90cd99e8d18a48999b4f9b1e95060d3a509050ac8a7a8461a9fb011f2fe6815a4e + +Count = 233 +Klen = 130 +Tlen = 48 +Key = 290660f114130cb1c66fe88b2d9a87969502a765d86f0989ce9e80580b2c47edcab79770243f799886d2da6d6168dd53230c7544673c325d68935b9cbca53ee83f2bc4514d60489a34aaa9f4e87d9e0df97c4a49c3e2114fe521a9c8f4c9746370aa0d1df63d21bfb84080a82ba173ccff9d51fd54294d6a2b9192651a5f9269457e +Msg = beace90b45258d290fa0d56c359ec61505083be3562ad93418ff466e2faf969d8256065e4e07edfbc111efd7c480740d18e75854a45de5260dc6fe2188549cadec4d7fdf0c0e1d9d4350df0350aa8c06645705577a3a348ae71f3f78324401e22518ba5724420557bee50bb88222f74914dfaab680c7afabcd92713cd687ab85 +Mac = 3ba6d5beb3b97d29c93887bffac37cdcfa407cb7ee9730dc0551144048dc83e4a2d24224f02fecdded21bc805cac3418 + +Count = 234 +Klen = 130 +Tlen = 48 +Key = 033f79314407bcd35919d1ef3725fdc000540ef085c5faae0a3dc301491a9d5cb98953720ff9e74b05d079985b5c69441c0cc04b23e0cccfdd1e0b6951474bbd5d490e5142f6339f63b5d36849776a4cebed37982cf9e55fa6626acca6cb30b677e67275e4e5eaf4f831a908085f4600f4603a7ea9f78b85ea70a8d25190947090c8 +Msg = 893a7f54d8739af07d5ba0e1e4b911353130ccdee25bd663af1c57d6b530e506d40705f556d3ef8dd1e0928e4e23d8cbaa152b963dc23879ba1cf3275696dbb12dee7ffde14a417584875afcb8ce1e26146881a8cad3db0d8715e8ab9b5013d65a97f453c200170f5efaff1169e16aae37d0d7fcd1b74689e0ad3f4ccc8715db +Mac = 7f0c42b9e080b844295fe9de114539436aa92d184b6a3cfcec1de8a84ccee0f38f5d16e34f955ad20d6a20b45ecf99a5 + +Count = 235 +Klen = 130 +Tlen = 48 +Key = 2a452560cb1f964b927daac63b72342755a94806ad044dfa0a8252a41a66a6efad96a2952141cae61dc415c583cf88f39fc30990a55f73de5a9ce64911d561a4d92b92b6f528ecf58ca3fb91a2e3f4b4470791090ea41b7bc1b1c83f53a0481416ce9bc92e1d250046df043382f7a1f4b43a8579d21c6f57a888a38eca0f84c6cd45 +Msg = ad3d83020142b3f1f07a3d02f602146749c9c3925efd0b4eafc3ce08bc2b2c6d4f63eb3b052b1c500a88fb0824bd18c5f377b4cf77486e5fd2561ff64f5502f3a4b218657411ca1e18fad1099fcf53bd13024e51fe843a722d81eab4b44ab4263393d12957de0682a33784ad70220e7432d259c1fe9bb8b149aaf9e9f3f4892d +Mac = 21a02fc0c319e6d7fda5a5a0eadd1a7505a7901dc5a24b91792d2f5952982b20cea4b55fac302a5d4c99700992b8a7d7 + +Count = 236 +Klen = 130 +Tlen = 48 +Key = fd545d84fbc11f642910e828bfe7d548e422641d227586a11753f6776d0fc82b0c4245ba8d6cf655f2deff6295d7afc45fed545c3aae54cfc988798a56e68d040c9c27436685c4a2e76a19d10c26a81d7f0892f28d79ac9edadfd45753c18680652baa286c54b0d46f7edf7e0a1eeaddab3dc5e7021eb695b221afe64de7db267fb7 +Msg = 21a9873b258290a981be2548cbb026097df680b29a96f68c954d225c6e23b6951e4308cc350ace6cc25e25ab7341d9bdfda5e047be822716a127921143ce3e6c5472091f3fe554970d1d07ab86ced6d19a3fc3920056e43b1df467d62789d3588adf901c8b3aaa902ba3d22f4e81a6af1c69327ba837b663cf5ea992647cffc1 +Mac = 78bd2b27a34ebec53c0c15732a23dfea9030a6e63eaf4a9f1263c7a933b6beaa4d3b647e801e61d0c44bc9afcc021f2c + +Count = 237 +Klen = 130 +Tlen = 48 +Key = 225374e44a65dd0fd9cfa2f7bd90572f4b7a17ba92357528e988b502cbd43d68e5e146f96cddd7f3b4a2f49bff3813e0939bcf3b0fbee0d9fecf4bfcadbdd69f3af8bf59ee78ad83cc00e79d6aa4c4ee0089636bbfec9bda646535370c6d59574a1f47cb773b48074970e3c4a7db53a2bccb39124bc78f7342d2dd7b91edafd93cde +Msg = 267d99cdc5989ff8d200f39665437b4d9ad862e42b6056a8442bf40e92fe80999e13dafe5962ad87f71feab501847529a6d01ec45390d20e831d12d4d766a51669ef8a205e1a31f6baa6ebf578759eb8db92bd39ff727738b37a2fe18bc22da930199379fb49920ec29cdda0f29e5ec1de252989578faef07d4b327bd49b801b +Mac = 984f82f1b69bf49cdba99b702b205fd50a7f618b6732a48639fcc37d0f5b868b30b53411b5167fe7f09b34d5d73d2d1d + +Count = 238 +Klen = 130 +Tlen = 48 +Key = 552e518ddc1a518c2c853897083b7ae8136273f6354ff1ed409ef35cd481b02e8058dbdc298226e1b073056dcf07b45d44167b6b324931a2c42cff16138466d14ae28310087892b0052cb2e3f9ebe727b9406579a3250cc53d192fa21972993cfcf5d2913ea49ee174d7c75f4d8e1c2dba06ba87528a8a3ff48c0b69aef45257ddb8 +Msg = 6f55443fe65938a33f0749655bc60f4c3ca62b0622f38763f30ae0c1e06b82c846105357d2fd13bde919e22d473c036ce689dfcd21fe4d5f1949106558dda106b446304676b9e535bcf06b661c35afa38abce5df7c35cd6c4ca2346fdd66bd90819fe1f61ab635728035ebfa23d89c5af2e645267bc18ff353bc53c6b82e5dcd +Mac = a9cfee8005eb9dfba8a2f919a0a19925b1f8d349a9cd9fd8ff0feddcef9fe687c5213aa77c1a05a72ce51909c240b746 + +Count = 239 +Klen = 130 +Tlen = 48 +Key = 3609e874c69e9f3516387502f9eb82acd029be530936ae7be6dd43628062ff920bb759b25bf263a1a7ffaac68e925da15760b2a67d8f864c6b6b4461845a07a06612038570092160822de9a903d6a59329f9c3e3749e7c037c94b352ed6320bfd082ad960cca20992c2bfb53629ea0a9cc5ab9b2f74bd7c9a2c059e0c4649017d06f +Msg = eefc0676e9fb74262e727ffc07135b6ceb05e6ed48938a4d802665473170a757baeb3ccdfb82ac215c8d3f86100364c19beb533c9114f256a106f5fed3384a800e84b49eddd7b6e3722db234ecbd52a8d570279aef9890fc30dfdeed0b7db58ef1afb51218645a157b39212f22a7edc8a37ba82ee9872de43498663e61a8b12a +Mac = 33a941a00df494796c3ca14caaa71a7e95479a60b9d0274cd1f58a0e809168bcf1e6e5c47753237d4b777fc4cca86920 + +Count = 240 +Klen = 145 +Tlen = 24 +Key = dd908ec058f137a44d76c004821a4750357615820de32e5d51df25f258b2356941518efee482ed4a07416fc4d662a7878d79ee5678f7fadd1d95b339b8f641bbe7876ae9a7ab1bc67f154454fb74e9565c56775a8e4654f75a38b954dd28c4e939fdc98a8ab3eaa11cb9e7bbdb9837460ad65798381a62347090e249b18fe57c9d7a54e775e4816245f7ff015c16b6deff +Msg = b9377d9bddf40ce17628b4570aced9e4b132e655d4a535af35752fc32f1cb40440b8bd96c4bb3fa703e453026e6e95e12687c903be03c5ff42528bd878afb5d1659b1683138a9e2c92dc7e4a3d0e8d693e32ea39559ce3e3d5df169deff8d67d32c8d18a53c8ef192af87d57fe188a22021b911d1fd95903f4041a3b1c5de1ad +Mac = 435e4ac37f873152151ba089e7f3925ccf3746df525b41cc + +Count = 241 +Klen = 145 +Tlen = 24 +Key = 7438c5424ae95acb1a77f27fcb4338edfc777fb0339a039e37617242bac8ab8d3b62c5c82bed53cd4f2ae67765ecd4570a6e38a8dbe93a85db66915a15d146998250baae2cd3ea3494ebf26951dfd0dffbfd6b75472ed48673cdcb60e5b985f80fa9acdc95c0a868b2621d3dd845b4ef96cb1ffebf8f5708c93d283c73a8f012aa16a439aede13d171366fdb404609eea4 +Msg = dc6430d14e675dec5976e671af07b9a453a38d6e5b97c9b0f5eda2d7a89a84b1dcf9b47f9d78334b9c92e57b76fdf2a739246da825d734f1af411723cc1b3cdb6b20c1ce43c1a419d019e0d29823d9e3b32bfa188a829d76df762bcf0e81849392c1a1e9caa878fefdf51f9d9de33501c8a07ee71400cde78c732703f6352581 +Mac = 4f9c9ab506d2b2137defee277fe205c88ceb16a6eb63fa9b + +Count = 242 +Klen = 145 +Tlen = 24 +Key = 9e49b49d15016f006dba47b8ca55a161e9e95151581e6b1de7d6555f5a1321b760151a10c9c29d25f34b2b43850dbb5060b5550cd3a8dc970ea22c34da9c654c87f485b625c83d35f7a2fd42245b520cb03971beab5b1400a85784c07121f732f92f1d1592daf6396008e63e0e080b9ebfbdceee48ffb8609c3e888d87688271a00d09b779c2703718c30ebeabdc900d77 +Msg = 6a90ace01b9a7edf02747f6de85756a34c551d4aa890c0a8f6aaa69a737c94e3a30bcec495b77fcd68b65af20ec182e1500da793127d7221d91624da8ab37a9275fad33c918e94bc0986ccf6f81f142b71adba85c3d81ef0fb045b2caa112a20e845047298868754eecd1ba12fd7d528b81e9c4842078abd645d94b959fe6e36 +Mac = 1cfad85f7f5b21fba6a15483251ff307621f8f92549e88ea + +Count = 243 +Klen = 145 +Tlen = 24 +Key = 22715d8208870414fde08df9129caddfc68cfbd879dfff1523fe8cf045b450302092aa892692bb63aefac0ddeb839f101fbbbf980ca81d51abae9d5e21b29e70ef80d044696a4a6e6932d756442b9180fd9ab210b962a68d73e165e5f115ffb1f70378bbba59d7bd97527a6c05daacb5c9f37a476957c251e25e8c8d9d239d7da0e24af502a58bd9a120502817d91839e9 +Msg = 66580cc5cd10686af49429771a7f96ead165fdaaf8ff47c8ea88cf04f56675930e0dee1fc2215e1070da280ab6ad04b6292953c6491fb033b405c8c9999c6be670d1e37fe8e1846321c184c41cbd0df3705f916b3e925e11660772bafbd890eef56c93ec269a03ed7011e6ad34f7d8280dd05ea1bfa278e96a5675de04620b32 +Mac = 447949dd67cf2cfb6a090c696cac55dd79d628308d04df88 + +Count = 244 +Klen = 145 +Tlen = 24 +Key = e107f34583d99654ad98e215b8c99952199f73f5e26ec01b8c634e69f3738da3a291f17a512498a6acb82d3556f30c232ecba62ad1f727db60a357ee8368bed7ad7b0c9aa225b8df3773e649592e8e04510ddb9d462ad11704b3333bfce2a42f8b2f0c4a7fc43d27d731d7f8ca61681d0bccd8f64cef05f501f9aaf766c885d4c313b934eee971a5125ac6ebb074e397e3 +Msg = ff95d63521f4aa2744e30fa310ff7e4d6927aa1e393063b570dabaee490366b6ce1b661e9ed8e8aeee2b6afbce721f7badef949920799305df71484e10f8a2b2c95ffc35d0dffdf0a58bbcacc28228af2169a8d6ff19fee4e094711ad33e2b08f74ae0a23e72b09671eb4fdd74986390cc7e2dfe5e786cfb792b7e7b173dc95f +Mac = 9c4ea79f8c3c19ac173cab5a10931d480a3f3b7f5e121b1c + +Count = 245 +Klen = 145 +Tlen = 24 +Key = d489d4235459afe93b34a99d7f8b7cdbd788b9c66ff41805e0570c0c5f619b9d34886d8e6ff323ccd697eaa021a04f316a12554bdfb0c45eba1dc5ca7341ac5933ee150d8dc3321d6951633a407d07168f2593278507e1a9ffdecae2b7cdf6a9b801f329169385e3dbab3df244eb4d932e0b9be4cbc014ec99e343dc95cf2294ac0b30697229c32616eda05096b2c9af2f +Msg = 6f81a80f78d2b33478c737bdd7f60197e34ae39a1f03aab0defe4f3a113772af5e8c038672c4435797cfeb3d894faa7e8558d56ea4745b9067ebf7ff9341a90c3fff66292bb70f065342a0f9c44caaa3af1303d1bc6bbba0a00653e5f2f22acb3a6338be4cb3fe88d4a7bdba31f4e74e8701d38a0fefb428b2d7ccb3d752dd34 +Mac = 15fab21a2cb56c230237260a57e9edf573225c86282ede7c + +Count = 246 +Klen = 145 +Tlen = 24 +Key = 4d40943fbc79937f7cf628df461783d87f45b74171271e1fdc19f9beadda58010d843af69dc2f4ad003dd74b9b570d5a981cc46331758fbf2b9f08aaa0dcbb9902693fce5dafa629dcbd18418ff6bab36b07d4ba931d3400d654cdb47872a4dd35d5edee83aa709a186032e9ac5c528c00ef316e1f85d58be31f9005bc03dc74adb18a7e971a1ca9ba0d6f6c79f29d8c5d +Msg = 61d72517dc2c10d953d91acd7c86d68ca4210e09fedeb5ba3b7c1df95acb6ba9c26b471c8ed6d83428a0efc919fe824b1f865da9803514719fb63c38cde1da3c61831c480b5d47d8656ff17ecb7670846db392d3a2ee8f1380bb3b14a9fc806d67a70c63fcc9470c33cb88b43bf4887fb53017500c100dea0511845597214484 +Mac = e947661a5621e499fda0fbe1a823c4a5cda8e3f71b541f8c + +Count = 247 +Klen = 145 +Tlen = 24 +Key = afa4b912e9adbceded28f67dc34dce5a3a02a730dafb6c081a266cc9d34669fef5ddebd97950da7896464c6838519c68aed0bc6fa214ccf04fc1eb5cee774de971b28d9274ef455e7111dde63302a0118d9d15234bcc8cf669edf786837bfbb48dea4743c4d22527e4504eff9caa03e03f315954bc6cd5a2d07238507a989ce7b04cc0f65041a15959cd4abb5b8fec5a2c +Msg = d73376199cbf8036d6a075ca00afe0061847bbca0aee846b6d3894b46de9ad2a085ad2947e1e5bbb02e4486fb69fd6cad6e550b9339528b7e4bd46dc38bba017efa20bb8a9df50319e1c831d90649081fe8817529bc27a38fe9934929b046cbaf2d2c98a0649891f110ecddc764537b2f7f8b79f28bda275239305dd7e0e389b +Mac = 7e4524628629714cb10759f724b8e1ea910276b926feec54 + +Count = 248 +Klen = 145 +Tlen = 24 +Key = a05bd170c0b3e42802ed73fe3a610d938e6538a9d05c623f0bf01afd5b9b80d3026cfadeb908298b44ef1cfe4900c3b56240a66871d7d634345b24f91951920153f107e22d2a47a59ee621271e8febc0b9d22b2362a3978589814002f0fb0a3cba735f45c52224bf395cec4161156cfdbaa530a04ac88c7a33e9d4df88a0cfcd5f796ace28f7aa203dd8e414ba9b30b48e +Msg = d19c7a8ff3ce59d2cc9c231d34d085366210a28aa7be632b5d1c0e151ab41bb529f743ac3a24d9d0586b5d731c534fe920594144b7d93062db32142a6726b612877fc2e46cf81dc3445a786969e626b2d8f32a5ee6d895122e0c0fa1ce8cb38ad37d20c2f113ccb378b19c848352b29b722787609b8139443df22603b5afb925 +Mac = cfc2c7263683f3c8bcbbaa46efcf0ae1f41fa16e5fdee84f + +Count = 249 +Klen = 145 +Tlen = 24 +Key = 84371c9ff40b745ab5300bc914512c1468f98b339704e204db54dd9ac6c534d88462163f61d9ce058a2ca16718aaf5404a1eb9d912460003d486ef636adeda0e6b1aaa56ad4882e3086fa2055d7e8b48d7836349711d9cc9b934d100d3e7f033c0c69e89e142d71bb661d54aecb734559791532bbc73fd7d12c5491809c9be720cd0bb8203ae16d51d6b04dfcc3b398f11 +Msg = 007b9519c21b4497e5176156adf75bd32cd00962fe23f62a3702fc719a74141a0c1b6c6b4814ba14d31fd16d330071005c2564476b88c6b796d7a5fd63d3ca8719f6d546745890b29dd37d0f5965b1ef81d7e5f9b29ccbe845fc9ed78272fdbb1052f931b0ae6d7a2c7b8ec389f0c2aa842fb6ff3d27aac72db910875d1956bf +Mac = 23391185157dc83f6f4c9b3337882eee11dbc64607d18f34 + +Count = 250 +Klen = 145 +Tlen = 24 +Key = b3edc0ade4b88144d315331bccebadf891c5e05dadd5c4ad053a938fb07e36970863fc2401df9284ba65305f52661052fd1824da57760874f888360248e479719475a499627b836402d312336679ed7d344b08b9180fa07f5fb871eac2e52a407fab1ed5af943c2cd3e74160b02a2cc25de6f2c49aaa74166352ae0ec589314df18dd3a08f33a524542a25aed783b569a0 +Msg = 3744c090cad18c19a41b5fcc4d2091ab8920b70e224e80f5e7ccdd9df5d66551353ef7832618a11bddb6c00f4ad76934bc1b0854a7ba4780a67632a7bcce9868df75b425b7020c59a3e99a2bfdaa2a439f4803dca5fdc91a752ca29efd9798593cd23f9d04f8977afe9c3347ee029b7f388ff0cfa47fce6c5ed676aa41992dcb +Mac = a2854198f88bb729acb19da0f6ffdef962d7fc6d904fc704 + +Count = 251 +Klen = 145 +Tlen = 24 +Key = df0251af61d9f87520a8a464bbe6004c4c9026afe3cbb58134cb242c8cf356d70a3e6ee80bdde4c7e622d9e5da9ca7fe4484bd9b1557aada84c5777100ca3af1691be8487fc36b8a9b0ef4f19da6932225fc05b106e9cde8f79686c48c997741656068d7a6d3b445a635a08dec4beb4057c1a6fb9cc94632f605f82c18a7344f67d7959e6655e880715f83c3afd5d8e042 +Msg = 4d5f76f718ffd84ce27d09fd4d0359a1de1807115c72c0d8790b63e4b57707827e743f899cc39dd4cc3674f6ab0be22ad6780e895087af802424ce804b74ccf7cf69a68031947856093a400feca9e58792cc781a38feb916441cdd6f28de8eb5886734449f1a73bbdfb0f4afd78769a05a3dcb2bde7ee682221a181a145b56a3 +Mac = d1423a9148699c8bda93c8fcf09d6e6ffd0c8f6436ebba7c + +Count = 252 +Klen = 145 +Tlen = 24 +Key = cad62de2048c1b274cae09a6311e9b8900852ad18a00aea62716e1ebfbeea11678be963f248716769d00455adacf81e8b3fffd90a4afab8ece0760773e7133127205266a194408211b0a9907d9bef0ebb6cc1ab2d65504a626259a109ce53108c091228c6b2db8d0ceb44dd5b752af3d10d2c95ea85a7f953756d9dc9cb2649f684cd5cca0a9f02abfe7a8ebfbf28884c9 +Msg = 31068b9f6924197893ccf4b0d2a10129cbc4ad2709a479bca018b58411ab8b936e3640acbfb5b7b3a35337653bc76d4743e3b5dc826a951b65238a20e72b0822b38fbca58d1a14f1ee6c01c2ee4cfc4167404733585a757187542c986be02a01483986f49cfe3818ba40dc2eb5dab3ff7f00eb93521b20a44fd42252666ff919 +Mac = c2475ba7fd88e8207f78679b7eede8d1294fcaae6c705c86 + +Count = 253 +Klen = 145 +Tlen = 24 +Key = 610482010c09a931cd0eff41a9974af03086334f008fefd38aed1fa91953f5491026994e72e9cb85a8f9c9447f7a73fd7191ad1225d305eb39fe96473ee72bcf04b4a8f1184ba6eb8c0b5e26f6b9c8c6bbbd047f8e8ef8aa336b3b98894c3126c71878910618838c00ac8590173c91749972ff3d42a61137029ad74501684f75e1b8d1d74336aa908c44082ae9eb162e90 +Msg = 0ac4075ab986937b4550272f2020d50b14e6dd247ae87e8aac650c12bd7843596740db05443e5c4e41fe34be51fa07345ebb462f8541034982a5040269fd16bf9880a313e9eb873c2c2320f1d41ba45bf0f8b8615d733e283a7f6eda9d2c28a784cc880a0f54bc4eec051250124b5586b2e55a406a46d62ebd3b7223c0cf2218 +Mac = ffaa7de925467d40a8a8ec9a006758eb888c08ae910863d8 + +Count = 254 +Klen = 145 +Tlen = 24 +Key = 295692c6db3d276528169b52c458d2f44cbcf5e0ccac14f284f8109decccb87ff5df323992ec9d7d7766f4692068351316ebc3656e3b092b92ac616a448834f3df4d6239e015e460a656b09676cbdca6c2b207caab38f5c1c4327922190d98f07008eb6ecea045353d4c9683cd6b0fd6d97b87ba8b8b1edfa2f3206e73422c9d2e78958263760824c5b26fd82d2f16cbe2 +Msg = 751009ee3c0c5f512d314bbd9b145e903c20a6af308bd41f3f889acf63bf57b886faf6288c21135b9468604c7bc748caa2abd2cef2ebc70c1dfd17c8266a79eb237f52564245d8760ab47719e3247480d904d0b59dce6f1fcc3a795374b3012dd507e4206462f4ca167d56cbda1329d86795680b391e127dd6a98817568236a5 +Mac = db1b1d1978f71cd6774d0c87a731383fdc74c29222911207 + +Count = 255 +Klen = 145 +Tlen = 32 +Key = 7eae9b4df81fe3e13aa5b291149a892835c3a937fbd584b88a3771f11c0aa39b98675c4465e75ef28069a309cc0f4d6eaa8ae0edca98afd841ca94f1db8be48ab25ea2ebff67f3f4312dd2043c9e0519345450381a16e80ff6a22ad925a98d82f51cd60b6fa68b31747aa9490c4e996ffaa761df945818a3d1459c6fa46d87c988285e6c5cac0cef72d68fa2e328f2b925 +Msg = 2ae09db7a59a2ffe199f37e4af4b2d51bb6c3b17d901f1d63b423a1d41e08fd14a8d6ad3cbbffedd9eb125ad9cab9a666d8468339f65a22df6cf557f03e0bbc7f8d2b1c0bbc46b1f39bd67bafdee9fef01370344c4ed264b9cdb38c94e863416dcb65ac79e31e08b94cae553fb9aa6b61e8ef4936f22e6f8d66bcb42495b6286 +Mac = ba84b3d221ac589863b78760bf6b9839d476cf8d6bf14faa9329b30a61831407 + +Count = 256 +Klen = 145 +Tlen = 32 +Key = 760c1da063e104fa69d2676a8673dc458cde629824a98dbb1215e329bb88858ee43e1222bc3bc8361d84ec0c0f8e6cec8ef7c4748d741e303a0bbd6b84829b44da175104367138ae5bd7ced85ba05bba5bead4859a8ffff6b055d82a146534b4e1ffa4edda6b9c8bab33d475728fefd67d215b7055e27834fc5dfc0f741b9606805ed185af123cf49500c88c5c4571697c +Msg = 42145074b26d8840327fdde4979ce4f630a48eef9e879fd5e6056117c5b899b94455bab08b2f5990fafce16476dc88dd019781b08e26733913762b64df688ecd2e1cd126fb6fecda15c24bef75fec731cfd4d68d674afebb26739020ed7d92f229f2fd9da8372965ab59854d3c088b38c1e4f34fd2f827a24884f81296008f6e +Mac = 24b4b0ca2348c219c151297f220b2d19def3bc0d8d6771748145d6eb1efe5a5f + +Count = 257 +Klen = 145 +Tlen = 32 +Key = 55d1a4864299e24bb53181794b5992ee301651062aab4e23d9c5ca8d3df6647d7864f574d5c3b8d10a80aea3ba3f40bc3e882707a5bd891bf950640fc4323090d38fc0323ab86a04996167679d0c7c20c9c5daab761044d218206f7fc449aecfefb8cf6779623f0bea3a756dfba78e425835359ba48bc673bd9db384422226605349e8bc98a7810f8574a15cdcf8be4b73 +Msg = 846573a89bf96dd9eaa5db7799453bd92f8d7efa4df05e7c9cc1f2ed0499804a1ff892c1ed2f4cbbc97dfc1a9b78f3bf50ae9450878daa388d80ffef8c5b2a7bfff9a83769232ed347b43e9c43fbf9fdaa613446204ccdad93433f936d5275080eb0dc90799fbc274d94c884f898f49b27ee866580f670e39451dd610f460af8 +Mac = 18733c84f9c0258beeb6b5d426e408ff69fa7b915b2a33ee43f08ef27f8bce96 + +Count = 258 +Klen = 145 +Tlen = 32 +Key = 6a2584a7acc2ba137771c3f90450d20f3c7827e38685857ddd53e54025056c12bf4c9bbd5be6c6940d64c759a431f35e37d04deb0065fae06d77f59b75f4041c2975eb678bc4df2aa29c3da0ceaf7cb55aed616b5004717c9123ac41240478d2cf29dc6fe466ee1f5e9f8f962cd3555ccd59c92c1d6ad39b6fe072fadb3db07cdaefd69c10d3dcb968f7230366a4679bb9 +Msg = 2eaa2265498645181a92e52f375b67445bfe8dec5f46fff465152bea57054fdf904ed46cd8ebdef396f82127415ff6cf18b3aec7135c264719f59b6773f2c0e381860e1cabc45c609b04af6ba988532e975f2bcf7f8a45f0095eb134e12994ff6918787eab58e6e8917c3703581fa7e942caab0c8b1885789f1715588af2f2bc +Mac = cce77edb3896dbb2dc8eb9c3c21dca293b31e89ca5ac70054ab58c14b4eef28d + +Count = 259 +Klen = 145 +Tlen = 32 +Key = 24a262e7bcff1c84c390b9028baf3831393f00b175922cfc668a26a6ddff77e4d061dd4c0b9f9edb22471d3caaeeab47a8d29fc94abea983d52e6375dfb4295cbe9a2b7940c9c0949de9fe41a9ca87624e03a5ed3ad99aefd56231d176ea99dad69573f6c5462ab61bc08397f20b7587121a3aa5adaaa6494d6db8440a686f690099de4c00de83498612d5c8eb791cc0dc +Msg = 4c1723a365c8567dc52126be2ea791bfa321d7137c582b69b91cafb497879f8a6186ccca89944d82f7c97110a114f8875cc58254f14e4721744a09f9d1be47ada89fb4775b95e7de65ff54d9ed377b379a175f3eaabc3a933e896f5af86fc09dc86cc1f203528c58b6cab763399883990721561bcc2a6c88c0e2c91e34237222 +Mac = b8e4d0e1ef33e45d46c11baf98be472d688ed629e3ad98a229df5881a944af8a + +Count = 260 +Klen = 145 +Tlen = 32 +Key = 5425c3a3074116f7626c227450b6444e40a380cb7930755cae11900dd33d81202facebf5b15f602e87a28c10ed8eb02b43d1533d63b23454314f823374294ff7e4e343fa83478df8318a1f707bd11b4db5f388c648814a834c0451015a8510379b53317a2500879e88ad445ea3876cfdbd92892ed1a6a13228b765402d59ab297e821e3c3f923467b39261a00db98b8383 +Msg = 5e1e09f59a1e2c5f1e8a3f697b40f1108d3f9b5ffd17db87099e7e3288e5a415286a1ec4fb8f1bcb324b04fa2820a400a24d8c3c5544b6cfa85e68f6bcce5b97a9d41d190b33b479bee4849ae50c73dd312c4af260975eee032a719d8537d31969c2cc9bd3f03f924abc87f2bceca5cfc2439d2a26f91d0ba36860d0eb0852c4 +Mac = 502c8f03f0e293a35dd557fed9de8c4674b1209c8b5cf4002fe76046c654f039 + +Count = 261 +Klen = 145 +Tlen = 32 +Key = f04cee99d3a813c1d47381422d14d8cf14f99e65e02b83806e26e98ec3e7a3a4f246fd704086fd6f872be95fd80b09f864a8aed79dbd74bb9817c3f3b6a69c1783d492f7de1516d15bc0f8c7e51d2b8fa8bfc96d2e14565ec73a49962f14c82d6b9eb416f47de55017dbb7609c71c5fea6e5f40fda57b4d3c33782607559b14f714b6bb5c9e6f35585232c1344305fac27 +Msg = d4b531125de389a12f34832f539e0b88b95c41db22407cb23c498f270f784c5599e0470eb5fdddcc424674e980050312bd67d6f932cf8b4a287061e15f1bb23aaf55bd28f0ada9ca184dc7bba3ce188a38510f6a89cb972a7ba05867877436005f3d1bcad59df785f970050f82a14fd870417496efdaa93a7d00fe224f2ae390 +Mac = 572afac574fb3e28920fa83a792864cfb55d18546e6cb4c4214652cc2797fc4d + +Count = 262 +Klen = 145 +Tlen = 32 +Key = e04aaae39bff1b1d82c59b6883602ccd4c58882d0faa089082bdc4b92b97fcfeda51b75677c8a9b4fd965a93c74185d20bb1bec3a4e8587f14ed867cc909c0619f366918a7d5ae25279fb137e1dee7fd98ddbe3bd19d841dd7c984cb01ec723d37e20951b38df21b05c9e87c5aa11af6fdc3d0be1e315213d33a06cf5ca9d83cab3cde2824573c3ca1fa4689b9f1e56442 +Msg = 292a2ff749c5acd4ef56adfa4827e0a9a5173c4dce9cf2a59904a024bb00c898dd628209f3266de4c9afeb59de548e01761bcdc4ebc4fcfa440a7bd008252ded55932b562c18ba8f0f047b04ceb4e2a79e5be9d96b03068e6fce5aac04822bb5b64494a69da47b1feadac4c3bf4fc4e24460f956f75ef8aa43d9a682551eab36 +Mac = 136467c874c375f53ac1dd50424c06cf8235c78b61df5e3dce91127b271b66b8 + +Count = 263 +Klen = 145 +Tlen = 32 +Key = 62e0b401b2054a6d1df230f0340b0c2577df0235bafd314bcd0980485b0f9ab71316370306f99ee750726727fb78867e20cb85d74fcd11c03193b81b6c3cf116c7815d5e8f8e4c90391083f148903d5e72ff6f86fe92505670d019b568e90972c849ad7a156d5e4f20f50bb5e5fb39afb3a447a98df4f7f7d1e72a7e17bdebb15c95afc0603ddb0b4c4987dd986282572c +Msg = 6531953e391507d0056929520ced0aa1849426605636414a1f8596c67a4231bc81b19aa8914ab3ed4eb1e36be7e874539cc43a3a7d9d766d744af985854c8d3b554a907de9bee2c1b1ed0299c51c73876e016513e878911c6677656c5744618fe8e5c1e4cad95cf43505cc032df1cfe50434ed13202d5bfefef420a377907660 +Mac = 0b7ae7ecf74b17eaf751bcfa7cf35fa4e80f5387869d40773429c59e5d4f8e70 + +Count = 264 +Klen = 145 +Tlen = 32 +Key = 5e675b4371a86ecfc11b2c89f59a9ea972c7698f2c964562bc0cb1f7b446e6f42fbc0935acc7a46e1c615712392ccb741ab7e82d04fc48bd842deb75bab02c94f868f3b08c362d57d9bf79f7ad7024fbcec05837d6b5908641aa4fb1c54f1293e2f1837bb9fcefd221befafef86d9285b76c217649ca07051e0c47757b2c803b14e12060dc21d4271ce443f0c22cfb5cfc +Msg = a3cd8e7f41ac042091604398ca0f62f0e1ae18565a802cc35fd92cda0f2862121834041788a6ab6ee0c806586a8cd0facdd0ffbadfe03fecba3d9eae129d8910c632f779b42fe446d28901b37bfaaaff064c18cb9dd4d8c44c3d7b81598790aed44ecf6b6e5097ef8f2a9b71a262d848b4aaca513d63df913d612c1b8bee5e34 +Mac = e5d4c900d1ef54282ddb2e7028deed0fff987275be71d904bd42fab55c45bbf5 + +Count = 265 +Klen = 145 +Tlen = 32 +Key = 64c673e5532ce4debe2682a3d104eaab398860797ff0c4c09430c1caad80481a50163d51af35704e3666ce996006d902ce0055859adc4471e9f915cabf1619eb1817366f3406df5232594354e073c59ed26dada8b1151d5ad6374672171cdb25e151c60988a91b32da854a9bfa5398c86c55d0aa6ca435c38474bc8b5d997811d64b56e553260a365774493856af39c8c4 +Msg = 1230545c1ad282d6df24e5e35a0f544c3f4545ffd2c941b3fcb195cf9e2b4b8825be584a5fd2175a8d73f6b9b952704b490c3b38d5afc293367bd53adfe59ffd71e2d90289613e67dc193f2a8786f746a02e611f1129c920a6e080a36415d4111d243f4a4188df47f7a026fe6cb3d3856b33217b2f3e3ea4756afed3d5c2d10d +Mac = bb51f90cd491daea50cd34d3c0e73b7386d93ff9871f7ccffc9d95adc62cd233 + +Count = 266 +Klen = 145 +Tlen = 32 +Key = 78c0924cfc00a9bccc71f158e1b9c41d13e1587edb089fb35d596b55a63ad62832c6e138b17e5b270a3b05c5a168f3e1d66d355fce6eb78b753666adc36e94de3f139e19c227cc957ea678523ebb73f2ef34a4cb6034f23a4627653a83fb8735a88e111ab862c3af2f989429421c0bfa691dedea1bc01869d815af236d4a77d6741e81601a990a1d25fa9f6f35f2859e49 +Msg = 5ad11407eb3acb52fb72295ab8ff76de2fccbb4c6dc012ece4951f5a11e8df395c8ca026402451ebabf1fcf5a8e891093b08e5328ceafafe489a81e945a59d1a6573ea4dbcd7be11f5e5af33f104557ab244519478f18d512968c60ff62948763c2ef965a87b992b9ff748fbdd7a499a5c27055b77fc534d4fa7f6b36e9b67b4 +Mac = 477db58315957a9d4281f6b6c1810a401c73d7df6ac839a8784538a10b293dcb + +Count = 267 +Klen = 145 +Tlen = 32 +Key = 36dd84a5342524a4dd7887aa7eba8f612a8505bf0c268c2efbe8d3ea4f960faaf33ba982bc2c3308f948a1b64c7fb68fb891bc05fa18781b1dc95dc749f7009adc58cca2bb0cf790ebdbb4165bbfab9304a2a6f234688dcf273094dcd8d7b38416be57cedace5783d8b92993548256b5373f2b4e621eb19442a6e0f3a53f10b0ccf5b0ccc1793a2beb6866f5dfd09f3d79 +Msg = 6dff76ba60cc61480efc62d01545aacfd41d25922b725b94819c94070c903fb14c5694f9d9bd79425f4da277e77dfde758264d543d381446c8acb7a517b9dd87b74b184767b1c7d71e953b574f3218e66bc1feb8a83469680127d6907d142898b5c649cb901014b052be7397d5ccc47215d682e6f3d021a232f739f0c607e789 +Mac = b0c443297770690d2103552d566b2e2bffc3e69871e1b90aa48609eb5bc94cf5 + +Count = 268 +Klen = 145 +Tlen = 32 +Key = b3ab0ff054819c5343a88e8ea9717e1c22ddfba4cb5f3ad89de2099df90e056c83c70df834f7f611ab8e80c8c4c789d46cac8134b4dc1e16248c51f851cc780db10bd5e2afde3f41fbfd1756248e7e1068a7c5cacb0e252b6643b14a02c08816e57f4ff6ecbddfacdafe3a7ff051c499bed5b0ae387cb8de0c0f11dd33729e51c62a647b141c3e1af197d18c5195c33715 +Msg = 7eea726322a48f664ebea63bc1cd7ede984b402463522b9e7ea58ac09ff0e342ab5172c7ce16d5bdcac909848f6a95d20dfb055646429a9ba7ca4030982bc006528b3719f065c752c9898cacfe64d2974f82859a3351e83b27288a234687777e1aa1aba1b217cceff40718fd35459cf407e8a63752097e46a7c751e3d08e6e73 +Mac = 4aaeb05e3eec82801b11606cc12978d5b509438412343bd292964c003424074c + +Count = 269 +Klen = 145 +Tlen = 32 +Key = 26da41f4d72a6d5f059496ef7a08fea8b8525356eb3f3bd11d013080a9d48e1cf2e2eab65464a6fc5b0bc2b8339ef59960e4fd36afc433506dab6257d62ed930d0f1bf36dac7a77f3f1a64608f8e1f334fe1a757f0160779fed25e129a06eb312ace687b4f999970188b24f0751fa3fdee11f8c2947be0d4383eccb9dca3eca767428c8d9d23a3584d24a96fcc9aaa7fa3 +Msg = ca6fb305a240774c51e5aa8d423692819cc7457daebc23ea90dea4f507ee5487aa391b78436cc20078aab36eabdc001c1e48a7a25b66154ad3eee8c4c536f91b61bb9ae82efd1cc6a99195052f71dfa31c96e47735c919b043b6497e0142940f381eb7bd299c8e862bc2d7bc959e38fdded88466038e3a04295b4e8b84b92c4b +Mac = d62bf0f254e4eef3562a201d8837763af8d136e7f045bca38e34bb75667effb9 + +Count = 270 +Klen = 145 +Tlen = 40 +Key = 816aa4c3ee066310ac1e6666cf830c375355c3c8ba18cfe1f50a48c988b46272eac0f2f02a0a2d2fd8fab2e62310cbc73fc0eff90a818cc7ee21049a095bf5248babbedf60613fb610f5e001e39ad4b748159fdf77d0d548562a257a991297ec2ed41278d832210b1ab7f6a15648b07136fcd9644b2e33ccf4d0b4538201cf3199e2f5a3d9a65c98bee9ffadc543e65bd1 +Msg = d0db3ff9cf2da10d1edfef389ba71780cb49e05dccb87c088b7e60f5375f539ef539c583d52f636f0406e8fc44cf36599ac7a54b467b9b72f8305dce41812482484a74d7bec5a98314f3d32ceb3ec328cc5c668719765253438a9f163e0ef89d32d6f1fc74379bd2b46d57ce783ae772c9d0cb172bf1ca32d355cfd5154cf679 +Mac = 291957f798a32c65954d31289aac24d62ea47469e5b1105cca372eabed44746316cb24fb13c24853 + +Count = 271 +Klen = 145 +Tlen = 40 +Key = d9aa1a8f94471a4c69e71fd256df38c600924b42a595ad1e5211f06e5669fc4bf61d61d762efec7be844797368cc078d0865122d283d1d9599378e630991be5bc2c3516795aac3dc10e544fff880c6c8f3cf54e6849da5023c87f1482fa20324a664904913c1c7f84a94297fed419b002898b9739ffd6eeea5c6c124afe5f22d08c7c685c67c1f56fc17cffa3158aebb11 +Msg = dcda25e0850a555368ec4adfc4135e47e4f347374e42eccd3ea478575286ad5f874a7ce564a5d2eb7546b437fbb98e54e28ac8daf3ad9bef4b1d230e0cc4b507529b724769121c5a3db229ae1101169a74a6fe9e71cd6bed07cd6c28d908e86d25133190fa18dca8a678d1ce6eb49e21838d110e316a05ce58fb7c2f201cee98 +Mac = 9711173e1c86fcdb11b7c224ecb76ba390c2e1218d26f353980e656a08bbaad9ca8e8f27c0aef6ad + +Count = 272 +Klen = 145 +Tlen = 40 +Key = 7b2d69ed2cbd0f37dc44f26506e4fbce7ab92593a50fe07413d2b3e83245246c59f7dc1b08f4077f7238faa73869187978c5f64a0659bdacf973d0876a5baf6c783e1c258f6b7c91ebc27faf576803f83bc036f2d597fb02c79f9081d21f6d13e1e86f34498b35144fc9cba5eb4b85f2cb942eb29b33621d843d39fef2fa260a9bdf1e70bdbcfcb1a63724b27a79661031 +Msg = 7f737d59c6afd85eb91237ec52c3f4845d6ae92921423315427035abe693e0ad179c32af69e0fdcbdc6bea970397bd5466dedb6826ed090fdff9764dd256fc274446a312210f67ace5503baabc944d11e8288caa642a68afc7e3d8cb6a57a242cd19d76b37649c679d68300dc5e22b24acef04d52422d65fc1d4640df6bb5a66 +Mac = 2aafbabcb09f72cc887ff2ea74e59a271afa5f160e8cd9d8b5fc9913deee6c9127f59ed78521a516 + +Count = 273 +Klen = 145 +Tlen = 40 +Key = a9c911ac37745172987713087c13a84edab4dbb7e1197e9430b549954955e58c43044375c02b32b41ffd319df3128139b3527f47b315318252891f22755364a5357904cfd57f80f0f7d0a8650f60b161179087ee8552642e7a8da2e73cc3ce3ee6f1fdc35eb663ae88b82168b9445f4e6f349bb13f1640210e8a7beb84ec4ae0be33d658431902773a7d44afda05b48621 +Msg = 9bc97c5dc1b1fb7ccb9973c71382af696a0e9c2eb7930939e16eabf9ef9a64596e81c4371311d118a213031a0eb8932ae275f676df11a425e7fd1d461ae32e073e81702864b813afc8e0d9dcfa5f655f3b7ab6c92a6bef41a0b35978d8b1aadfd3748817face49a806a9fdf71d9eae723dc4e60edec672f3d3396675722c6147 +Mac = 691863b1bb5451493fcfac2843cb345bae42785f1506f8bd8f994b9d044c07600a8c944140419eb0 + +Count = 274 +Klen = 145 +Tlen = 40 +Key = c1b9199017aca6fbe0741e5f9108b0fdfa43dd23c1868af30fa553658901239082f101256e672d3c9ad06c531b3ba09305be9b56dd1535e7508d9c882421ecba70e200b8089c87453cb65aa7c25a0df4f0d6c38c2e4247e7ac63599150d04672f353bc53cc92db9e2cef8f656cac1ea62453fdce9e55e87b8bf13186f4575941730eddfda29352d0d443b495037afc330a +Msg = 92621ba35ee326197b59a3464832972b9983169dbafa63e0b1145877c48f083b3b23a4ab676d9b83e32c05901aaf42c2098ede834799b847420e6464cb0fcd25d5521f19791be4b13e676d0a986a7308ae3cfea460d08687892558d781c03c51e75955989dd548cc1374a15fc94c72240ff63ca9108713c70ec1fe77ef8b9de7 +Mac = f1dfdb6f3b095c096d342819a21730c76fe46626adf3c27703a207ac21b509a61779e6dcffdf9847 + +Count = 275 +Klen = 145 +Tlen = 40 +Key = 1783e40062c8e1e84b6b23df731405e4a4f540d815fd5748ea4f3288fbf20801d6ca83cb07c71f7f975cd446d233f4364d1f56df2852b42091d052408923e039eb50a257aa0bce025a2736d8f2502600d0fc90bafd9f663ab31e48b61c875fbe5dff89ccd3fcb61c9cb492bd5ad564e9337635921d4d363d58235c133b864d3534be7f510b029e7366eb2f1d9228749980 +Msg = 7f44275cd31c629d7833517c19d41c5041b3bbffcc8a0cc39c05222e8ddce06caa3ec7c9a1760d7274c9ef80729d483266e1617a0ea80bbcce17ebd2a682165362d2de15102aebf0b7ca8dc5463350bfcb8bd1d9e544d1a17cf9883baf983ba80ec611490a7f239ea9fdd2547fdc5d7fd97bb3243ba585fa0d71a07191667af4 +Mac = a63d553fe411517492f32b274278bf921370b8a70a27b835176a78b1d812a95f11286e65dffd70d1 + +Count = 276 +Klen = 145 +Tlen = 40 +Key = decd5ff6fa8843501dcea0e98730d868d32d7af02a9c17a2b74a52645ae337e1a116ced1f4f4ef7b0f995778b60ffcb9a36f9eccc4499f5aa34614f5260c1c107862714f47953c02301a2eec7774cc48fc590a0e6a101c72b21d89adb82081014bfb70f75b33d3ec66994bcb3429ef1cc432e73e86b737f0cb15d81779e70dbb0327f45298965b419b5dd6a054f40e3de5 +Msg = 3e3c5774c11abe73629e400891857106285299254da0b6f799b6c41d7a5c3bbad5edda28f0aea3ea905e27e25e0e03c48f33abcbc4fa66ab2fdb9ac6f8714aa2df89dd9b227921d5a1b38f754099d1118d938164a35f34474ea9b7dd6fdc980da237e8351f23401cdec40229ffcee1d3689aa459b07926b33c48a2c8a7442de1 +Mac = dad2422f9474b3c8cecc73505aefef0b5bd8e23d70e66da3a71578b7b0499546e5c9ea59ead1ea9b + +Count = 277 +Klen = 145 +Tlen = 40 +Key = 74b555fb6542cd797d87959be910db67e9278ea378ed1e8d2faa83cc676280a79ea929751cb7a354d5bf2b1e927d59994c0fa6eed8052d5dcabbae2e93e7d8ebec6ec8cc787ccd73a4d36ed9d363ae89b81b8e0c0200d4a43f7c0b3dfaf8cba027ad3aeac2b6d33cb26a66b5f3ea609df4f64de33e059bca5794a1dfe6bee02e170d88b541903e19c72d1c983c39f93fca +Msg = 769b0eff7e7bc710d9fbd289ddea554ee7ffbc67f21bf36168cfd8f1371ef0db288458126d37ff2178ac13c9145db9ecaeca01aaf3bd19c9a1d3c15a9638fe992eb21316cbe1ad12b5c55e2c25804c3d9c5d2b80791268f6cb42a7086446706f2f2d2551c30138ac374c9af838db77085ac22032aca149af8f257444c8d1ad22 +Mac = 23f73da7fef0c97e39b5a9cf19fb52507443fd2669953ea3bf4939fdbd678ab58b2bca3a4430b203 + +Count = 278 +Klen = 145 +Tlen = 40 +Key = 087ead1bca05ee15f09e46ec0ca272f96841b609edd5d754437069af3ab7510269f482fb15660a0454dc52737182a10193fae37e9aaea9c34a6570e7ab1526b6aff8ea5e16e2146c8fd275f720c7e01bc7d5e8aa6277ec1dcc2751d1492c0f7024b46fac96221334eaa936e0df1a352f4efa4ef40cd8a84c12dd94d3dba513180e4d984e5dce0f44ad891d977723aa266e +Msg = e4476c025e67a3d5bc01f3ce55e578e84a807e935b5ef156ffed14b7b384765f92a3237a267d175d7eb3f86b80630439816148f013c412f31ea5aac233233d1f1caa1a6fb8762162065277d67fa67ff9a9b006aee912be33988dee005a0c67f2abe4baa8bb5aa82e7c66dad8f9b6d371e9f62295844fdc5c952d4939d146de21 +Mac = 42af9bb87aa1037114f53189c0d05b5197f42083fa6630445e5021d81f525550e8316d25ac5e79e5 + +Count = 279 +Klen = 145 +Tlen = 40 +Key = dc454e19f3e1181ff3ef0553a81be2dbf3cf3d9d704d28f757fb39b1a0fdd5306b09aeec9e778b24d09848d066491dd7fbc8238206c61330b6bd514c21832a7d9e205a1c6fddd2eba49db8043b70ae0f8c6657b8e5a1176171ae1b135e169abb3e2f5a93ae3875de36a55dd871b81eed6e51e3295507bcf04e779eef9edcac5213e1b437a3b3fd63505940344f48f4d768 +Msg = 8e4c5174a7a7920055ea1ba5e307af6c49e71e33fdf4bb4f0bdb0f766890cfdd83920c9d1e70aa5b5c8c13281b1f2ca6837d896cdf9bddacacceb413f0d564f1ce1a409a5635100ca2b2bed21e1452282719205fd840408320893f3c187c14f2946c5634f9fdac5b4ee4846a95ee08395b444dd38eedce1c8f941ab7888cc926 +Mac = cf6666f246b6bc5cfd0a9bb8184f8c0057d62ff8dec5285c2d9fa18bffcfec9663374422caff1add + +Count = 280 +Klen = 145 +Tlen = 40 +Key = c7d57e7568f937194e12ceed4af8cd23521bf054326a7e7d7e73d947cbcb548b1eb04615a5ed5da8a5fe3443b47527a3289c6609cf5c483de15de2d3326fd9adac2974c1fdcff51c8d792a27b3723f2a28dfd60ebca15967477c8fb2e3786eda58873102d869aa7eedcdd822afb9bcc03a2b69ec5f015b029a16096b44aebd1b0a14a45e9e8121d5ac4067bb1010476d46 +Msg = 4e462ff4568a9185c42651cb9cdcb7408682d20825056b18a5ae379e93a4509df2b3e6d88b4b32f284ccacd334007e4e36e93800bcbec57b26309ea4d4f13d593877d5572ffe405b91cc398806b8cb091ced09f797ec007d09d0ea3aa2d6a5e6481c6339eaa9a20812ae5fb2ba0b86ba6115aeb55e97036773178329a55a6e8d +Mac = 968d6d68367e361e137ebe60422ed2c309167402038c67edc11ed9961df1bb08c359996740e0da83 + +Count = 281 +Klen = 145 +Tlen = 40 +Key = cc65da6fca9702fe44f2d808bff6aa3591b21f1c4792c0b74379b613aa0fd54c7d5ddab90597f16475387bbdcb540d8ff72abc323ffa9803e2167611fb3af319a920b5b56d50f4d0d336395d557666487c84f7ad486f8749d2fd962e30fd89ba99d9f2c9c96b122aa7119d502604bc4a69e558f62a9996715c579ed10fffa11795ae1a5fe38f545a39f42cfe06a5187c06 +Msg = b04dac9b967eaa2c89f887f25d4b641fcd566eb71c60a944fd64edccb1ab2e006fa000b608e15999cb92991fa6f6c9bc8f40205622a6ccf88cb8efcaa7f0e741668ad2937495516e184b8de95c9e78bb6e1356aa46d37b47890056d9ae45ae975fb12c1a22c51a1138cb6a37c56afa823278169dd00f3f99bee32ae00cd20c6a +Mac = bb402a160edbf81ad5f32e89f3ff51483a699755b31ab50c03eb50f4d02a285cb4ca49536e16f1d3 + +Count = 282 +Klen = 145 +Tlen = 40 +Key = 96f763e5bffe0bf5bbcd9b942bcfdb3e32ed26ae2a6ac1ea960b6b7f587c350e25ef94073506b5b53ff3107ba4de405deb8612c16d2cdc7751ad10f8bbee10eb417c44ee9f746b92aba12ea78be5fbbb25da10ddd7b8d6a7687a717b3f3c950cd3e89b206311d495e71f1da246adb360c92f4989d0d8587fc4bbb7904c306b78c479c027eba599c5dbb504f43ffe1155c0 +Msg = b59d490ba4adccaf7255d9b6129013866786912b58539041230a6415f3f9b507b42fe733263cda503038d4d77807bb6830da886b33f9f8f350c184e7e5e89463b009f05ce35c778376c4136cc110ecf04a7adcd0dc74249ad9a55dd1d02eb14852314acf02940b11ec027ebd18330ee45e6e77a37b4c7a0165bed51adc51727e +Mac = 7a95bdea413b7997f94a6d16152fc254bb5f34f2e6d62bdaca1efb7fde569e5d8068bdbb7ace2609 + +Count = 283 +Klen = 145 +Tlen = 40 +Key = f7d56910205345c18409bbd42bb13265d8cdb1b0e1304ebf3dc1ea46df7c1bcb42b96a0946b1bf973a3e19c53ae282c7bb0b431564955411209116ea714544c10773270b91df0a37d30bee90f8457f642ae3466661ce1f51783deece86c38e986b8c0adea9e410e976f8a2fe0fe10f864ede226c7fe199c7704ed8b9c7ffdf96988b7a4937c8b7f44b8e9dd724be1b734f +Msg = 23db86c1510c083f02ae3d8c9ca54dbc2bd8540c4c8465d349d7cfb585ba9e1a1bee65dec25a3b4bf4a304444ffef2c23b424b85cd426c03eb590ea5b146c832143ad58bc530189a587d5d85a6a8e227707b16c0455aa0eba5d4a3d16678409d57ea5d302436a5157963d0b76a4c25d113ab3d277b770974bf7017a36cf81041 +Mac = cd2f37c7d7cb19ba0e8021dee4a3af5d53e76729370fe2f05df74eae6e9566814af0ddbf3d23419d + +Count = 284 +Klen = 145 +Tlen = 40 +Key = 4810d4a682e216f0b461a373efa1469b7f18b31ed5ba1c3ac562ff3ef274424b86c0815c26aaa7842588bb77f74cfd4ce963328110dd3c407fcdede0bdf31daf7798faef71baa01ec269ea7b417187c53b39504667ebd8101bd54587bf105f1f835fe7674d592a47f5cbd685b5580b8edb62b574c12e1a33ff42af38df12302412dcefcda1d16d85267527a03b48b23033 +Msg = 1ac164a39ff2d0a2195f3e7c5e506362f016dfc38a4c70b7f95d669e2d475704909e13c997d3da7e96b6cd11d83aa3adef789ddc49f7bcef042b319f033b15f442085a66666a024399bc8e50949cbab3fdec6710f41cd9f3e9ac226eb0ecde03d70721c3373faeb8c97a6a81bbfe103cc37925a9b4442f8b4fe822525be21bf8 +Mac = f611b272c28453f7afa7532e2c06507c5fffea12c1e7282bff8b1c337e85132911f67ffe76c00a89 + +Count = 285 +Klen = 145 +Tlen = 48 +Key = f05d561f5ad70403264c5e0a0edc12fd473b19c0b40f8cd85a99ba2a14987705876ab76359755b6c9ec54a3c93f6c4e68f55f3b93642c3c2f0d9f4919ad16e407ba3d4b279ef5b198c1cddbb744029f5a73f9e808e36f8f3f01a6989af9cec25b250d693220fad11d99a3e0e177fea317741419d22b3d27443a54099bbc299bb15b9e48fbc9bf95c6b8496bde67eaea3e8 +Msg = 77d3f3e647e67766e5f4cf1bce5f631bd575ddbd02f29643a0c64dbd92191f2ae68db3dfadc3b62d0920873e87d13340af0ca3c5da99146a4492c8b76267fb477624192960f72e85b7ed9e8318fc1668be46c203539cc1470641d639def1600d4e228c8b098ac9b817e17cb329e8f5dd2aaaa23c160283220f5dde09aec134c2 +Mac = 724e5d2d51d98c15ce2e78f861d7b6f8952882e9d93d40850b78a23e632c4e14a222ab3726b1a0aa7c6b2cd66082ed95 + +Count = 286 +Klen = 145 +Tlen = 48 +Key = 95ece1c8ae5e94d16ec9983b1089a37395ad5b1d660916c13c87e4c13dbecf8f68c6611c324a679471def5487a93aaec86c935025b4518962884ac2cb04e66f7aa8e584b6860fb55b86c2b0a0873735dcd278bb525401f9ebaccd2beeac6830c26ebcf3c98c9d77d09194367014e872f306e641e0c21b241bc085e61354faf35a386cdd70aac83752d8d4449af4f6ccb78 +Msg = 18dbab9f86b9d70bbdeb018f6a76ea7af23eb2ff111e9be3c13811795d8ae7d006c3e42b46547eb1f3c9e566565a435a8dbd42212e3fd0822d131f7300eaef4600c40f1d130521a388cb9ffe427f1bff19aacb9c7d0a44a15ce686a2469e3934d086365d36f449484498353d760cf9d15eac525a46a881a617584eed79cf4d03 +Mac = 2be1bd6a766e30792154cda00af97cc512e81413e0fb761698f39a26cecc3face6f9a98b7c49605126dfa5aa8de1ad72 + +Count = 287 +Klen = 145 +Tlen = 48 +Key = 70200eb90526e89d3d139d4d057398534fbd7d91087dc0834ab270c4d27553d4b4dc38184d1e89227af82033074f5bfe6b1673afb272092cba1c029ba20895248044a2f8522246923899ac3de0e926d6417e7cd38c1784845f27f2993c7b72e53b1ef461fb7a4774debfea7176891f623abd40047eb35612a29be8c68919119e4c33d55c306db550d63281d9b2766e2abe +Msg = 1e6a0d7f4bf483287255148e2e9346734c14751421a6c55121c35b0eae12cdd92e30d6cd60b14fb6f0625a7649d1e1a7aa103f817cb53cfee3253f3d9313bf24e543fb4a2994eb143e3d761e6157e5dc439c98815e6ef71f881bac10c95f10966a2ae2be4ea43f8a866ece4e1f2b3c5b3e40e8db70d7dffc3b2a0a51f9fea675 +Mac = 40497133e82d9b6a335002f71585340da2fdc6bceb03fd911c82abe8715191624671bf476b89de4d9a7bdade775ac744 + +Count = 288 +Klen = 145 +Tlen = 48 +Key = 332b091239699daabb4df4d8d45527a288437b8c586791011420ddf5f1a159c9dcf17b6f0d3564cede325a68de0e783a2156a4e3db46c2092d4427f93fad518d8fd4d553894898eb575642b1facff09d9a0c2a671a2e14eef0aae8da3406a380f6ddff07d529a2c9cdc295fc5121f7929a6af35d3eaaef77045c06e1f733b96ab913e1d31a60e830e97c39910b8bf5e2c9 +Msg = 64c479cbb5c9c6167db18c881f23699354c8f4c67b4facf430b52f931fc3ad621ad89b4f6ae8ac9763c5fd2f3c9d8f631dc4fbbd78b461289d53a2558974cf5eff9fe1a9db15aa10a20f0b3e5d47685ca8b959ee06aba2f777eb66644d5897a73ba3b1a3af57a8c861171e7f2c27dac81e2f7621cb3b57abe605e3881277ed87 +Mac = ad69ddfcbf2e6383eabb9f561d947eb5a6cdfcfc220f506e591881291ae85524394e4b4568eeabf1b0103d07fdfbb8da + +Count = 289 +Klen = 145 +Tlen = 48 +Key = f87e5d9fa8d2745f9aa442686bb0e372c190db05d42fb58f2e80ebb4af7006e5d3190634383804665ae1164aa171734a9fc5d84092a92a8b31935c61a5929366d581887ee6802ee002a5966d59ee0f3f667a918474f95c8d6062dc22a0e4d019841eab27bc923af51b5788769b0fff79a019cf7a810894be4453339fa94d04246b5837d4c25670cc2c61b5106dbc8a1fd4 +Msg = 38bd6300e7ace5d0be9713b5fd4ece221bfde5b80c5b7e14c023b8ececc88e5a0c65ff77a9f26b2cd7be41450319d7c7eb519984eee166ec86e4372613d00260da60de634dd2676a8d5364342db8a758396e35d976b4a7faec07d053a2dea025a99848eb5bb39f31e53ec5a90391067c0b3b01de2d3c09e5f975cb9b215c3152 +Mac = f8c0539edea90bd9cec6a408a9d47dc2e341a68c5d91fb8cdd48c13f7667836dc4b68c8ec2519121a3fe02e571dc5c74 + +Count = 290 +Klen = 145 +Tlen = 48 +Key = 7da3134a85e28a852e16a552aa34d3767d444a583c15f05b942f7c6a8d09d8d5107cca5ba878d48885f65941c62d009df8095ef6d9d9cf406248a49a058e842334e70c0f2244b9facd41087b3c58dbfd05541fca1308ac69a6406c2a9bf8c0ffeecc1f8d7db001830fe1fb2b941c2b3faf0dd6fd710a507d68011c43d8af551148134cfe402373cc52bd7a7757e0b70afb +Msg = c523fd03e54f1046e7282756f87501c6ed0835a233e6c6af09a8f7f5ec21607b534142529d3918d448e06e2e6356f61c46e7d9f480324be6118a6282da9c287a5152efaa79f8e455129ee7b20cbd9aa7421db8d465f5a9d3365553bef9c132f2261eab1361d39d51ac283ae9dcf115ee49717b49ca7907ffe1d071b232d7a76b +Mac = b1fc08f7a1d0bcaf9cd23024cb0f9ebcb826d9facf84c50d644031ce69d99f5d07eb72e02e25b0a3fd395759552d0dec + +Count = 291 +Klen = 145 +Tlen = 48 +Key = f85000b579f5db06206f5cf43e9f700e352bb6bfd37e7c76de10e903f0e77b45855eb50253251116da893cd03bf582994db987d6ee0b3910974b0252348c42d3324ffcd5d991d0cddc0929c42eabb7fd187020d88959f2f6adb2dd9ec0941f6025ad3ff8b243fe754f778b9abfc7f684bdd7e78d4b71907147cae0af3f07f93286ffe531874384545a5cc9189553267465 +Msg = 40ecdfd2810f09de02dee7a3d82ad794fe124af3f81d818cb78695a2bdd7ba2a81b9c437150bebb60631cb5b84afafdbc2f60e5ca07d56298814e9ab95766595fb1d295ea35a15f415a490af9b31d083a3c3567b66c5b762c796a2c37e251f1575be152f72230f02f7df3f8667d7c4f569222838911a2d9e3eb3c9d4be0c6f12 +Mac = c2fdc5b35ee992e0cb4c761a705d8cdeeca26edc2e392419f81173b478cebfb3bdc8787273639da8882020150ef120a8 + +Count = 292 +Klen = 145 +Tlen = 48 +Key = 59f3efcd2fc8ab28aed9165424c8962fc883b232fa767649cc0019e1c224dd42d682371fbf85306b73dd0b6feb30281a260c289870215226e4ad352430378f6b98806ee23eb7954ca0ec216462c76d2c4e7a328299f4f3f4675798d592ad5990a7d7dd3d32c5a3723ceda25c11f52c0e47b31818fb58205c5ee8881d71ee01590c6dcc59251922864fc7d47e81232f6719 +Msg = cfb0db236306e51c6b540bc1797409ecce36c4fc1e0d2f2793086f1214043e9ec6218d05d3726d276bf92f1e09d2ca18f8ae7e661583b7d0d682342c8b4a682fe45b2182b4cd6718f442a7c00b1911f64de43effc11c16352714f19f392cfcc43247dfc18d7f9c9a0f17bace07b0a42ed5c04ceea94113fd8da6ed92a613c008 +Mac = 761c1b719e554e261f783334770d59879926a641bb5f8db8583b43c52554639d4f00e19e9e08bfef181a406e68a23a2f + +Count = 293 +Klen = 145 +Tlen = 48 +Key = e6fae88e7e75e970646091815949c55f9554a5f85d82c1efd83389411fea06289351c83f737d20e7ae728feaf5ea7d5f15522ece8416f394391e9d88c19937de90f9f54c953e676c1178f262a88781beb92678a4eb28ea2a08000b010f87e85884fa55fd0b4227c53579a42f9aa9384428d76ac1ba400d78ece2bbf42e3e7f5c185dd299fe11c9bbc37d8c99f2d70ab80a +Msg = d3d906f23fd6893e241066457047acf137d3a374b396f8db89301be64d71e61749147f097aaa7f03dcd454cde8b5e4c25aa77227372dc6bb0f2a888f7f50ee18fbda9783ca7eb648529d720296be8d7efd3a44125538773017dc0a3aedbc8b9871941509383a74360fd4898d8448f04ca9f4e1dc14a054612ab0698f9e9e06bf +Mac = 002b1474834e0bd0ef8baaf4b38ee412ab1da2cad89a54ecba9cc8e5a74b44a9f663e23f6dbf419e1009766c3d7275cc + +Count = 294 +Klen = 145 +Tlen = 48 +Key = 321206ddf2d6f0c29b10e34444cad455a4324738824066446c9950e5acb4b3e3783b9de769b48f3b2f60d4d1826310875b261ca965fa11b7aefea369a342b1f13b2c1980721bd10bf94b344f2cf9991344c72aadce61f4c75c613a637a700f1de3ae24b0f555debc6399abc72ad29781c6dc1a4ca5be34fbdc8bbcda1986f6efd8896380daa8ddd6d311e3406436315a48 +Msg = 19583b5e7cc08b189ac798ca2f45a83c345d23c0070de066c603a26efbb2e3037fa6d026981494e865b6d9dc7cd58cccd1a8e1abdadc98cbf0747e50f9d336e5441739adb4a91c7c21121248fb11b1da30eaf9c9500092a9f0a655804c330e79305480dd18a7aa3e968549f6f41f9ed01acc7104b3a156698c432fe63cf9f229 +Mac = 88aa8e3dd920ad7684acc468021c4a9fd782766c6d80c339e81efba5121b22c80f872895a544c42a849b9c9c2838344c + +Count = 295 +Klen = 145 +Tlen = 48 +Key = ec96c4a5f1b32b78a8439ef6e98dd93b712aa051360bad51f8beeecb19eced68ae2790ced6e202c44bc1f1973614fabc489e61b6069a063b640094929604fc3f23df22e23bd3d55d4a690535cdfe303b657d1e6b296ece144130b039b18215377249e3a9c78d8d89cec44298555365fff0523e36488fef25b6d6a98911701f9ac4ea3beb23181091ff581187771b805112 +Msg = 6b1bb1f05d08e59fae3d06392a2d4d61f63432016a20dfeb1ef0e4bc48dc2c06459530ae75cd6a924cfa0d6fa657f3035b2cd76e1450c4de5deccd6bfb81ff407f2d94fc1b2a6958b597b3093a7bede835071550a01b17c7f90c8ae199a59a62426b45a3f725cb37109c5fcd8da02358ab4b536eb58ac0ee1dd881e6cb4de5b4 +Mac = bd4cb2284374d21c465ff20ebb88616abcae7c8a1cbd0ad966352c7a47e1f153c7e0eb62be767aa56fc5bc78ee5867e0 + +Count = 296 +Klen = 145 +Tlen = 48 +Key = 0b0d5aa89010d5ebe8e2144e9a7a82a5fa6eab54a967e8655fd33fd7e8d985386d92c576f576e6f22b1487d662072ea9d625a22035f995375e74868168dfe6bce6147aa969ee001b47fe154d9b7f56788d8cc6a5d49170c079004defdd456722fdfb3feaf5606c8ec306865c4ecc423da70dde8c8e17c02838df5ac84ff3508f3bafdde1a0b473742796a1aa82d53a1eaa +Msg = e68bd3073773cb4d15fef2bb61a0be80d5356a7a2f953f6092691141293d0c2d0dd6b13269c51b8adc3c87121e2113fee761c6cb0c87d176eb8d14ec0af1e4c1fb0c0c2483a01113fbb0bbcbf594d083234c23597515cd8d823abbed292d699078d6ecc7cc2b36513a0196ce2e217e76529f890bb267bc0c1d190d2cce172103 +Mac = 8cf8f7217e2e9c3dcd14322e19eabcac17de11128f944441385ed984f07df8f446577c789f8d301f37c62af374a05602 + +Count = 297 +Klen = 145 +Tlen = 48 +Key = a0f93cfbd5f5ba6b0dfaed5310fa07eebfaa031f049b36b205a627e59d8ea0270ce1051fed1fe5f0691ecfbcabad67679378b89daf2ccc1667db7a1877a1803ea388d279a5a931546b94fe7c7ff2517fc76946d46ec0971c224470a7806a7e3accb54a0fe6dac51e7923239b7611edc0c14552cc2aa0bf4c9eaaaf999e30c3a2f13215eb96fccad6fd92e622775164b1ea +Msg = 66dd7620746dd224582e8857079059417407f79b06b11a114939d046e4fb1419cb69a327b5ad0b90d19005ffb49a04e4967a0e04bfa9cb343c4bdc61d6566dd445f50eb4a02fbecd18c4498fe657d55a82d2b7f916078b6c329383eac108ff263c4b5ed21d3a14619792fd128410f22a9fd79980f312813f93da6ee88c5af196 +Mac = 6a186858094b8e9ac0f5b519a309fe89ee659b2a919f7f942a83da674e5163c65333e56458aa3bb29a11c62f65ff1c41 + +Count = 298 +Klen = 145 +Tlen = 48 +Key = a1360850ee9e253d9792b8736df334679990370ed58f6257dc0f67fa1e0b6370b9816f42a5d471872e7039a8a8acc9675ef4f320cb272a4e0d3e9250962f596e25104a17f4809f6c33431703b62c49e4eb4038d80e1827e4a087af10157d0e6ccd2bc255456857f58f547d09ff3b5de728bc2dbf062a02217d32e6bf02be2b75991aff86ff55402928eb9144eca0ad77fd +Msg = dbcab7759b3e83d957896333952ca4329671378e7efffa41b6ac3af38f9275b6286564f3910438a4304d25c464361d046919dec07c502e313f0265e45e3c2d6b73448652272a0d559a9f7dcf060a76769fd97d46bd1545bb3c3a2c43234509f3850e2579a5d887525d27753dc1d237efff581e088a77c54677fb97f827d591b6 +Mac = 2789ac4f72d6fd014b1bd5895e4812da977b8c6b3473a18270db1d99ebb9c47392400cf6a3300d88f8774f52b405486b + +Count = 299 +Klen = 145 +Tlen = 48 +Key = 044514e7de18bad8a149fadb8ce93228089129b739a346a8d3d200e12fe596f99eb70055fd832590895e4e20f505db37bad935e8af28038bd9aea162845ccd7d9258a4da1444ced117c3f5afc0397ba29cd36cd531c8b1dbd9de8751d02f30bf8b2de8c04be41b63f37fd5d0160e7a2f5586b7c5e809b8607a689cf63ae726892f40b54dcbea760dc49ad8cb1f0b40a78e +Msg = 3ebada6dcd96f06f3c2eba9a5f174c428b60451afc6a55a474f9fcec258c9476d1ea917530fe083d92e46efbc544a3a439df2e2b6267cbf75e942394d874daa92c03ce2acbfb9ecee2ed6ac43691daa2525b629ee54ec4006615d6d7f95085eb962c1af46836bc097371365b7aa5fb2320fb67d94dc748a7d3a59d1d52c79e26 +Mac = 1da79416a0f61ffdd39cee60fa603e70c08061dbd9c1693683c3f54d6fee4a20006275edf3bae040df289495a89a6b01 diff --git a/test/vectors/hmac_test_vectors/HMAC_sha512.rsp b/test/vectors/hmac_test_vectors/HMAC_sha512.rsp new file mode 100644 index 000000000..7386074f8 --- /dev/null +++ b/test/vectors/hmac_test_vectors/HMAC_sha512.rsp @@ -0,0 +1,2631 @@ +# CAVS 11.0 +# HMAC information +# Hash sizes tested: 64 +# Generated on Mon Feb 28 20:38:43 2011 + +[L=64] + +Count = 0 +Klen = 100 +Tlen = 32 +Key = 726374c4b8df517510db9159b730f93431e0cd468d4f3821eab0edb93abd0fba46ab4f1ef35d54fec3d85fa89ef72ff3d35f22cf5ab69e205c10afcdf4aaf11338dbb12073474fddb556e60b8ee52f91163ba314303ee0c910e64e87fbf302214edbe3f2 +Msg = ac939659dc5f668c9969c0530422e3417a462c8b665e8db25a883a625f7aa59b89c5ad0ece5712ca17442d1798c6dea25d82c5db260cb59c75ae650be56569c1bd2d612cc57e71315917f116bbfa65a0aeb8af7840ee83d3e7101c52cf652d2773531b7a6bdd690b846a741816c860819270522a5b0cdfa1d736c501c583d916 +Mac = bd3d2df6f9d284b421a43e5f9cb94bc4ff88a88243f1f0133bad0fb1791f6569 + +Count = 1 +Klen = 100 +Tlen = 32 +Key = e245be9a9c8101263830ad3515c1c6cbf285a7e4b362ebc062cb8e7e75ef50ec4f315a9e09d9243d7109962253f26e23f847e1adedf2851405076e26a1f697062f048438f1fc26f80021ffd09068876975e4cda2e78261df82f672a390f534628ba58490 +Msg = 425315dd8eccd17a84c1aa00ff72763f99ddcbc2c381b8b21567b2f8e263d1a210983d88263ae32fa7986ced9f596f4e7b05e5b71dc8de4930737308b9c4fc3defe783194d3c789ae55ba5b3f75665a7c23e11b69ae8bcfb3bf020955dffd705894acfd72a5bf885e7143f9830f1c010178d37066268b890dee7a1e5f69cccc1 +Mac = c5801d80a14391720e77eb7ffb1a0b21a16323641c9a312b05fdc34e90383c85 + +Count = 2 +Klen = 100 +Tlen = 32 +Key = 7eb72f117b397cefcfb4e75ace3b081776e46b13521e93559d453e32ab74ebc0859b9a8dd4d1d39000ebe95f984d80a3f5004dc91a051dfbdfe9194f4f9a483e4e7955577fb0933464c63eaec771044d59abc3029a079519f8460a693b25b4ce207ae9d9 +Msg = 4e6611a6d76395f2b0e23dcafcc672c090e7c00a5fb5e23d351f1f59a9b3da064d06641d2756146a656e9ab14cca90ee72fc52e12d4e10ca4ba9217203b59a6a2c422097ade7faef35e86a7d2c5d3eabe991a2c025a938a8af866bf462ec002155e3ed1d515d6f07881a573683c9a47e5d7057ae2f0d835dcb7ea4e7ad9e31b2 +Mac = 531bb20800ceef736d52d323a01f91fed1b80457947b1f865d1f6b3b1102552f + +Count = 3 +Klen = 100 +Tlen = 32 +Key = 12720cff0ca649ff2e1c9355cba8020fc96dbe05af9fb4bc008d8d8ac8dee0fb741aa674e66def16c9a8d4e52289ad2a283c84165621c9a7bed046d0a05b56d43bd352f3e30d4d4854a501f246440872421f5054b3c0c91240096035597631bd10a2f8c3 +Msg = def8c9acee9d9f191419982551804a9a9411c7d1240b22243dc32fa5fef28b118353dcff4e6e5a5debae8f1dd3ba5a2c92023aa42598c942a642871a2bcdd989eba4526ca2a1308f37222a699c606906f7fcd444ffdb9042a834c71602e7a9be5e11b159b4dd2a98419df16f74197c100b261b197a7b7e0c8cc178014ce90297 +Mac = dc72f7049c66effcb820848059516c44f934ccb2ffca6f9f8f884e0e1c67eece + +Count = 4 +Klen = 100 +Tlen = 32 +Key = 83488a05032905754cc8fc569d37cae05f0c370db6acaafc56ca9a93982a4669ccaba6e3d184a19de4ce800bb643a360c14572aedb22974f0c966b859d91ad5d713b7ad99935794d2222570a3167733a532eda0b0eb17510bcb581e4995440101a00ee2e +Msg = bd1170af91fdb2160db3522e1bc3b1a349d6e50479920ac5d9bedd8a16a787a3cdc2b6d24392f25555cc2f20b2ba9e6b47ddc96cfbd6df669d874ce21a758d3cf4704362ef7786d90ed67b01bd91299950058885accddbcf44e340ed4807864218653ee7ff7215aa1e176157a611f9374b984ad7f53ea70ab81be131062718ba +Mac = 6563097db04630821c814912828410d2cb056219f886786d6bf57a5b5b0083ea + +Count = 5 +Klen = 100 +Tlen = 32 +Key = 9c054e983cf5488714bc48ccbe9a5bc95e34646a84e61d13545a59d6e45a8ceae5e28c58867a99f895c29c9ce74fac8bfbb5d631dae51e1441bac10a02cebdaaa89293005a9e4c850245ba4dae6d0083369d55131f5804a6bfaab7d3a200f6932d3debf6 +Msg = 7da3134a85e28a852e16a552aa34d3767d444a583c15f05b942f7c6a8d09d8d5107cca5ba878d48885f65941c62d009df8095ef6d9d9cf406248a49a058e842334e70c0f2244b9facd41087b3c58dbfd05541fca1308ac69a6406c2a9bf8c0ffeecc1f8d7db001830fe1fb2b941c2b3faf0dd6fd710a507d68011c43d8af5511 +Mac = adaa76f70a17b99fb65cb7625b4e19de5a539a21982fd5b5fce26772a0dbf488 + +Count = 6 +Klen = 100 +Tlen = 32 +Key = 9963406c515852a8892ba6879e1a91d7b4058711f0d0eadee80920db57cae89916e1eee9472f9d56d34e34f218771c56dba279e484eeff4f8a44065e2c37e1ec622f6c3413c7e54b8873fdee21662e7e46b34e49a1b2650b8aa5bcb5c39b366c6695e3d5 +Msg = 274376f90a39f49c0dad642cfa4f810afdae7157050847646d60cc6adcd27f7c6a24dab9049dd7c6111ab37c555ef2dd16aaa34d7e8de5ff41feaaad80a8bb8cec85fd7f2eaef28a8772828ab3a5fc24143a58fc0c15bf27ab1a4de28a8a1584f68f65b151154cd1b6dc5ac0dccba7c73d8816cc7745dbc5f2dd3b73c31f934c +Mac = 0ab30447b762dacaa6d2ca8a79265c80defdcc510cad72636b0f3f97cff05a3d + +Count = 7 +Klen = 100 +Tlen = 32 +Key = 7f87d81389a6062e8ed501ea964c2fe35b2d3de9fd676c04f7da2bb552bdeb7f183d2fa60c67e2379848ee4807530a81f403d3dc02c11fa8ce078ed422c6626a6c05905a6ecb1679364090c9510f06fb3c0e09321b21fe0aad5cb9d980674e35612723b6 +Msg = 381dfe5c3405f0c67216a34475d453af05f8ae8fd47b92d561f119cd1d18d34ecdb152342f8eec0fe0edbc1d7d04ea7608dd2c878e648dc107bf6e927eddca957252be067b624878315b4fca4929e3570124c76dbf2c2c01f4f8c0a047abe7a9f0a848ba61a88c682c0a6233216ac7b8b6748429adfaf8fbf04517dec0a9b3f2 +Mac = 69dfb148b9527e61b3bcc893cf098e21183fb989736591e80074baa270896136 + +Count = 8 +Klen = 100 +Tlen = 32 +Key = 424f288fb5a07524c162c7adead1f4f4e99b87abb79f714fe8f4fb523a2dff786edb58825654970a30b3f7ae322094706652d75db851356d4e8119ab17dc1e95a77f82c64268d8d2367efc726ed14ce14524158598a94cd21f0b7f6cfdb10a8b95428ea4 +Msg = dc54c265659b8b724812ffc57f20ff8f05227ec58b54d7246df56473e4a64c087d149c8dcad69a0457995609df7a8157c0b3828ead7ac734a32659f91e94b43f8cc9d5d902d894132e0634f38d2d39bfdd5e79bfd6ca764415e3ebea59bea519f1bc94d2756922a8b5a4c30cef01cece456b8be16d0e8d5fab7442ccfcedc89f +Mac = 3c571546dcdf6491797129d298b478a3c672a976989bd89d9256fc64b3f715bd + +Count = 9 +Klen = 100 +Tlen = 32 +Key = 340446d9caf0c0f70f7d43325606ce5daeac0f3f5af9794e81c498ba2754a1ad5cc84ed2b3b5e814f612a5a81851354d6bcf98d2136e32d9bb8021dc87e8ce6d497bc2c2f7adbc705d6900770f40f17fa2c6e2611b392ae9a86476db8ec3643363e84db1 +Msg = 7ce5cbe79d08104f03435fa575cb66f1b1fd6090685039d08b89f2bac52e482f493c9037cd1ce695d6d4869f377b7a4cd4ef768facca00e31791d3274b2f86ad25a2698e27f5b040bd6ed36ac40834f64c2303689d7b5e6f7957bdbaa1038e0d9b7f1c94b179b5773d790cae245cdc17a103cec6444c9d9c3a41781bce90a878 +Mac = c039cc8f9026d1c90e766a4bd723a1fc6ed313b99dc42bfd09e6c3f39ccc5c0e + +Count = 10 +Klen = 100 +Tlen = 32 +Key = b636c84eba7188fa32cd65d87b8ba7df3ff77b58314a47e5fdcf3bc17e452949328596bcec64113fc9dbc3246565486b4fa9bd89ba591a69755ac2b11d255946916dd612a602d9051cf53e59d1fdf21b351905e7fe7701f31d957b4ef0a6e76ab937b1d9 +Msg = fa0f033f3293389e5a9312c6046757eee20fda34e4c8b4d8a1ddd2a8f8c0b0bbf7596362fb9edd5c19646d49bd74856191e2c066a19a23d7bc3ca4671d2ae8ae4bdf511d3d823837c2ba77fe20c52bacfbc4b8a479590da8a474294c106addabbd48d4583e66d2981b3f39ce757fd136e85ec8d6b62df8b2212e694018a9171b +Mac = 2e22dd9af3f9135dd49b88b2391dd2924f0b5b1d8154498d15681a329ff02813 + +Count = 11 +Klen = 100 +Tlen = 32 +Key = b80c19c671cd50f1c39dd0e0e89bcb50b41fcbf326fae8ce3dff3edf0cc29e04119f8418c3fe495f6ad69a24337029a0846ea21e8d0be15d20a46236c278f97e02acc32e09925cc1732a52de5de9da37bfbac2b1fd43a7c5b8696826ea16daa43239be50 +Msg = 490aed3e0c539cd2af8cc9052a204338e9150354c537bd0a3473b560bc81d469aec6fb53107897a8db0376cd67abd9cf2373ca5e893eaf1a5135200ee568f67a16b8a4d60df4cb138442082436c111bd936c005bb942ee84a0a4c45094fe4e28e9a991ceea105f9d121228137fa8138ca3c84d503d89a1d087874a2db18905fa +Mac = 62461e063c08dc191e4bd04d5f553dd38d7679af84a1d0b140be7499b34fa43f + +Count = 12 +Klen = 100 +Tlen = 32 +Key = 94753191a7f8b9095102c5a7691e847623c068a735d972cd39a9af4d53d4030f13b9257a9dffeba00770c8b5020b93c6bd5489a706ef962eb36dd09e40664466b9c8f60cda6e236476f5c90515cb6afde1880cc4c382846fc99bf426cb5e93d84e4bac2d +Msg = 0fa4952307a137b5250aeef287dae233b4c8f79ad2b3a09a1a43f8b98ace0f94d9788124b09f4e411776e5642eef82b11ddfba354d5d556cd96a5b063fd871ea5c64667c97260a1b5c2b3feecc6052e1b2b18beab9730291ddffb5af20a0d8767eb06cb122fd134dda722319c9f3f9ca5c8890427fbe5212104a2d3d93f0ea3f +Mac = a08df9f841a2e227c4d9ba9c87e5d14a421d025ff4bf5d533a03ea449cd89ea4 + +Count = 13 +Klen = 100 +Tlen = 32 +Key = 986b190803ae085510e96c2bc65c956b14881040089478a542ef8e28a7378ced5a5ab7f5e8fb34a0c2171c71f1e8d312050995984edc51074f29bb1970079d3bf3006dd9297025dbe62e4f70326e5f0a41e646aaa630445dc370fe068436d05f4da6643b +Msg = de48fc7bda19796ffdf455ce423c79b0f55db17e67ae03fae69b3e7fec03d58a97dfee7a5925b794f1ecf94a9ad0efbd829858807d16cb9ffb4f4be038dc1b48b290d3e1e05bb4bb216e3931f3a0ee6d6511852fcf0d27c9c033086f38d63ead17a3d339d68419eb75c53d0ab4761fc986106111c35bbf811d8e9eb455b8e7c2 +Mac = 376f040e59dfbcd2936028edd6ff6011d2e2c8ddd98acc3e946e1880d103d343 + +Count = 14 +Klen = 100 +Tlen = 32 +Key = c35b2d9d8a383db4b0c6d46a59a6dd8e6843ebfba0627bc809fa79be9645050f04177644056f9f789e4b52c4cec123fa704c6e9662649cf1e751a1b84a40c99dc597b54ca086a0a19ddee8189427c9855bed6b05e85a1f34ba0ae5a0751a337ecc82f19c +Msg = 76e84e9a2f3063d740eca3fb6be583327dc9ceaf2d7ca49f48b0c25c0bb504e4d0922789ee54d4eadaa6da2192a2bc3e3be76bf508ec54935f949d363702ac3ec5aeeaff57b8c6b8807dfcc975691720b70c34f5f26f0ab725a8274604ac7c629b651c643304412b7999905adde09ec1395eb218b3adcdf3e415e7f23a5c7c38 +Mac = 2c4b775af82a21615fe47e4c29322f9b91359337208378b036b77f809ad83d54 + +Count = 15 +Klen = 100 +Tlen = 40 +Key = 6aa11466a2c96e20544c5b34c91f90d17f9799a57c73ca00e21d7736c42d6845382f87b7ada6dcca7f51bbcfc9ac3cd07bbaec75ac02c22831d755786edd4bbb6cc915f82c68da043be3b0ea87411290712d8f9823fabf8524e47b1f29994d182ff826ef +Msg = 2771cdfdd77aabbcc95740bbd94075876ed3024f0b5a9949214d60522818a5d5ed1dceed2efd8ece64135f61e0422c2e19f14d7f4553b9c226ec7730275156aca72fdeee958e86e03d5728486114b1a88cf81d62a31fa320bd162c73349e0abbfdade74634b6fbbcfb2a83ba853f6ebd6ef059424e45bd2b8dd46765798829c8 +Mac = 2476dfac043e55518ddba312e63699b22a587fbdccccf3981207ef5cfc2e27eeb6a4062bda6b19bf + +Count = 16 +Klen = 100 +Tlen = 40 +Key = 3beb75373a0a02107b2748a7b9a3738b1a9d75fab167a6f8473aad9e5b28a4b567537783655d8de5921fab9e729e15ef143af668972901fded24595cdf60ae7e51c0a97cc8498ba529d611cdc40d9ae790918bd7b879f38157026b26808041f0829bd5cb +Msg = 0405555d89a8117794c64285cd30047d642a1d635f6eeb6b33739b5e92ee9c3e859a532dba34118b1fca425fb036e7f88ce646d44fdedfc09cffa341f9896133e0df81b0128af4332f816bfd84a7c7b82496d15b3a9b2c4d9d0188cda59317913e5c45ad3ab1a4b7ec722529f28c8e0652c228c1c9aeb85a5f02b1ca3f14a8a1 +Mac = fa58f0aad7a3116caec2193a3dffb0d1c0b3172c3b59a9a62ebbf31d21c766818f1cefb26052af72 + +Count = 17 +Klen = 100 +Tlen = 40 +Key = 6bdaf94d6a351f76604658c7b9949f9e6d0dbafb8c4a6ce21b15ed011e289793f638e284ed3292d610c52f433d20b6247cfd8e9192debdcad4965cd53a0c4869b43c1b0bc17e5b773d0bf1417abddcbc9316261bfd8417d65fe3aa50a4443db64eed8c2a +Msg = 2bcb4303bc51438dbfa7630511c50d3a13184a25ae77e37a9458c67dc844aa176088f6298a2edf20cd2bd1ca91da1168e2a9a00471136204dbce7f002e450ad1aa48e1eac402d4ec712c0974a0819e3708729152251adddb7d74e6bc28cc17c18f73caef74b768183312d1ac47a2fed20fd9e5b7d2769c2602b4c25abdc11b10 +Mac = edbfe1cb8575c0b6ee7f31f156a6f5fa5d2ec3e433eb5f2a64a0c8e575cad47cd022a11f94ccce1f + +Count = 18 +Klen = 100 +Tlen = 40 +Key = 521f28ee6c3019f21a3cf988fbf10fe739666504c6522963e57c532ded728884497e3e13c4d622e90413b68753e43f37a604dea0d769fd9836bfec394014cc37aed5ad70b2f9f3c57d7cfe29040f0af7040e538943b27d061a88347b3021102e880bbb2f +Msg = c444d8cf048b327b1459096f0a403d5fdb2e8e56713755a0fe9472e78fec859ce4d361997f91bd04fb242d769f88515c33354c9e12ea787f81a959c53f02cf195e958fb050d3d32b450451bcb58e6a8b3874a5589e1d5b613c57b486849bd2abd9934b5ea1d9ddb99b025d8a72dbf1b293f27fcb3c58650ed6a66b73853ef519 +Mac = bcac2df34ef75ed3737537d84c4c02cf2520a7b04dd47b90734a65c2fb4d237d138973feb8c7c1c9 + +Count = 19 +Klen = 100 +Tlen = 40 +Key = 4241ad5de14a2198acb4c357c4ad5759bc09b335a038d9ee367563c78341245991100ce270424ce07b54bbdfdc58788f53a2d11933c564b3adbe8473506edf60d14e5dcf085e4bed3c5eb898a0411f731ddf473952ea6851da238fa3cdcd43ab896269cb +Msg = 20e0b7dba419fe76c427c77bd3e31d1b4f9f99dab8acd638a22024910ad58142e6b5c50dff351cbf0320b90fd696c9ca2a54a62d4f364e924cf913502e4694dca0eceb34bc6e287d21bdffea4646bde10e2f80599cdea88768bc89b992386282770e931783c90af94686ffd4c9fce1a722b9902646aecc5d1feeee95deb3d57b +Mac = 0741bd432e785b3e1e62b2e5064167b84e15415a7b21d168f91b96bf89efb2f0c3e4a12ae089e1ae + +Count = 20 +Klen = 100 +Tlen = 40 +Key = 1b0bb110ef8d7139773117d7308dac5d11ce7c756f071df11ec8ac05d9f35ab4e3cb2789ef4eee873ec5a2620799d7f01b6884dac9580797ffab699bb394e4cb8149a235965ac8fecc41b39b163a81441f55d4a62ec9d2d94d8b7191aa1ff1983dafaa7c +Msg = 10cd0c9fe541169120a005d9486737eb54bc0847134751f0cb432f2021d5063a389cc5001d896b0663f1ca660ae08ab6a6b17237bcdbe34f700ea53a5d7fe7fcc580809aea537b89bb40d367b3e57be9ffcea115df4534b14e6ba4fbe588e99afda0c6d514474f0372b5a9420b1d116ca83b1f47422d4cfcae83b3cb809914fc +Mac = e59e91f69d6cb65db4781a1dff144dbf9dd61c7ac6425d2612d8535d2e404bbda2cabb349d7528ff + +Count = 21 +Klen = 100 +Tlen = 40 +Key = e4b77ba343cde0bf4cd888b0ff6effe0ef5f24c38deb8bb0a9331fef36ee0c134e5ddc897681df72228bd1ae7c94b739618e0abbac7b175ab8dda6d3206ddac9c90f585d2306abfeab64e882b5c58d76683dafb30a8f55327ea01f220a2b2b375eb53844 +Msg = 180bfcbdf15eadf2b90bd239fa475e104924aeaa1a110494d9a03798368da9e2c0fb7861b500f970186462b605a6c64a4240471b162c87905ea75f6bdd35d4f3d4e54652d2d6eb3ccefa7cd1731a2ec5bb1be4bebf7fa3fdce2f4641bc7773e87c52cd58f1e86b9d02558a53edac7ec7dd3bef59be11412550be54e27a5a6e09 +Mac = 9481e91ef436ad8a6975300201997106dc545b261e7183533931d51aa19e1844bdc9ef5e5a860b8f + +Count = 22 +Klen = 100 +Tlen = 40 +Key = 180deff707d32ae0b6c0b58f030a7b8a6a14e9ddd3ed5ebfae19dd724295066b421544b3a290478da8feb55946611cb8a7022cf108fd2394c9ff885dc44f1c5add0b0e50dab56e5c76eee4d6b080a27a69a297ca2e78e5ae53da965e41568a811078b497 +Msg = 09d575baeef7e337621e239c03035890b68a2730e8f61bef1a5948a09c4f2fd198ece25b53f36937b0496393f6a9f025d298cfc0a09cc425e6a93d1b21dc34c2c56c57247fdd670dbd76de1d70f6d41b1083238ce1e3ca8476ee8fbd7343e9e6973b1c3df91ba660918eda60fb52cb1878316bbd3633f4b6d11287ad19ee13e6 +Mac = 0e1328e618ce2d3668a3af236c695409eae4ae963a380ab4ef458b68d0d313a74019c2a79d65bb02 + +Count = 23 +Klen = 100 +Tlen = 40 +Key = b522b2664b0a3669d6ef3796ffa1d5dd0a288c1c6605628b82bb6557e28e548d718b9d3a19c887d191edb1cc76f3bb969e2c43a9a98413f3d806987f23a29751852d1b929ba9b2ed6dc7d8388caab4575dee025db4e951f5a4306e01965d2080991015b5 +Msg = b3db592d3736d262fb074b7391258e13b4f2c7d08a8ce5e82648435f515c884e8adbcc7e4be7fc358e227f5090651992d5b5103c6c728ede74d2476cdf8e5b9476db7e4f1d9c56b759d624180f64a7498fec3e3dd0114cd5fdeae0f831b396e680c3b8c936bea98e630c84f2978a00e0ea7f97fa3fd1e776ca79582bd034ffeb +Mac = a46f4c53e76cf37f354d2101df409db5a1f717c498bde11410187880c6a35249755cdff928c05023 + +Count = 24 +Klen = 100 +Tlen = 40 +Key = 703df657c2480fa26225874f5b7fee03cad062afef274a6f832947b34c55679cf08d9ca907d26d927350ec74f49ae82ff736630caf5c46a467fb54fd17fd5df535ccb4e4cd15e37dd4cc9cf5ba70f3683e90cb78868e8e376fa322472223183fe8022651 +Msg = 32c3d3082cacd50e386a307cad0c89f7ee78fabd8e035bdbb73fc0a0cc1442514d13031efb066c553dccb9d6c364b8c76947cd885efb3ae985e59d9b1b5fbae59b0a7b98de653545879f2dad9eaa5b797b916e2ce60b10557c506a09552beb90e351455f1df1b946dd8c95eb8707fb77ecffe38f6e5c638664292fd1c0a35cbb +Mac = 2c9550074d5acd1dcb9ca0e09ddf9402e09388b7ac96393d4747750b7eeae484bcc0f4aaf6f74142 + +Count = 25 +Klen = 100 +Tlen = 40 +Key = 29fbd8f37c84f5b434abd16b6a36ec2c34f2ab55c94aa0c0e5170c3d6fbaa23f5a698ed5c9c6b6dc76b64074547054b073d4239224ff28365f1cad4d617c92cd99ea4ae7c538263a591ed64620452d23259e2472d4f822955dd27a1b596d357eb0261311 +Msg = 5df0b8cc7a1fd4b92ed482809f6a46e98a7cd81792ef1dafd733553dcbc596d341f979f3c7f613ae3602270e870099b2e83626b80f5453e0cfb2a3ede9da0d4f2446ad00a06bbaac67f6b8144555efb4da791ba3edda65bc03bc92fb30b17b292e60bdbcac84b1f9e8389f5b80712e3886cc1fa2d28a3b8c9cd88a2d4a54c6aa +Mac = 4f689f159b02f42863d455875a4050b15ac7626ffc9128e3dd6208e97a1bbcb1593ea9b6a3dcd4d3 + +Count = 26 +Klen = 100 +Tlen = 40 +Key = eec8c90aa52c43e76ef3caff62a0648de4dda52a32bfda383b4a8781b138141c5ef6c391bbf0e53cbf0e4ef7f57e06f3d1b541e744b0916d8e805ba85405882bf2fa7c1612314c827e202b20329d261cb6e61248aae4c276a2b17d253557ae6151dbdee4 +Msg = bd1df1cca29d293a5ab75588360ae96ee616b0953df3b5ee344264483265ed228aebe9bd454e407623e14a53dc0434dcab9aa62c0dbda247c7b0b0ae261438318a5f2f05268bf516010b7e9e4003b1f7a8b80dae5f4692d8f291dfa99c7d9842c6620acbcaba12c2fc1d3a92eb702668e4592f42b8f54d49bfce3a601d07d4fd +Mac = 00f5519dbec8caf1213ca51f38bfd47291bdddf530cb56f47f0d2331924ed2711aeb94edf603b8f6 + +Count = 27 +Klen = 100 +Tlen = 40 +Key = 9f8586d89146bc0bb7dd1cbc756d4dc1dd0e198d26717ff759c3033d4ed34948d776e2313b2b6605e6fbc3c55ea3d4b179f536c6ce7c5786695fcff7c387f4eef104a88d1bad760b3007deb3d869ec30aa5d1007a0482965c74ee31b3b7043e753f780f5 +Msg = e998038c09f9e420e7d23baebd0aa868ca700dba9af2ef1f890f1f38838f991f0d71acf989255bcab5fb048e76dc3f85d43809ce453f22372e54b354a7be34ce7fa18dfe7f2d7bbaf316366f67445170afcbe18e2a1de1e9477fd50647b9ae214512eec4747b0c98a90b1a7c19aba5d46313dd23d1f5f5ddda77cd76ece7cfbf +Mac = ec3dddb720380ab8300173797377e65136d139dc7c85886bb5dfb407b68decca1880fb7332356dbd + +Count = 28 +Klen = 100 +Tlen = 40 +Key = 39b877b8e82ecbd9740325828faf6721c129046eb0136144a03182b13620e2498145a2bf3b03e6b64b317dd48fcbc018d9e7bc6e37eb938178fe1fd1ebbcd9056a2ef98297f9df3c66d5b2ccdc4147c41676443f8c9985bc9734be2c31e76249fc5bc42a +Msg = 0a331ce20089b29e94b2c5f518c8dbead40417a2a8d50018f32f8512b3263d54edbbf3134ff661ac14353c9628c371958cacaf31fdd02567d0378d9e21a469dd2c6d8c3afb89dd9642eb5887870e559685d20dabd3865ac5c146beee8387a76f91f0f1404d6cadc2e67d21b07dd30f53871d3bf6731f279a8c0421eb20f67f72 +Mac = 97168f5513c2e9bc4bc525ce2703740bce1a06ecfe99a570ac66c83ede9667cc07edf664617ce53c + +Count = 29 +Klen = 100 +Tlen = 40 +Key = 9427feb606205df574911dc02c5d1dcf1798b85d90013cd076cd9e9c80a76c65d1f40264cd5b010b2a85fdec4a2176d7c82c0a42516fe8eeb54988c83dae9a0e40703cb2f1bd6f037beacc8a506e7332bd3245adc3085312227895cbb6c3e0ae0622126a +Msg = 8beb01cc36cb03235d113c97dc3ef8dcedb1ea5f9179b8c43268bb938668002eb6129207c07dfb0f1a540872982ccd818f14e9ef3b6d0b415efcb5802a3d403161fa2187bb1d6ad688c3944b96917bdb554baa7939a2d98c604eb4a0755dde5bd4cb36b3ee52595fef83688b9f160bd0867fb56354c22a8d80873f5b2e71e196 +Mac = a8c6c8f81e845c251428f4a87cabeaf88c9b45c1fd613a072d58864ac7343fa4f401b43ef1892afa + +Count = 30 +Klen = 100 +Tlen = 48 +Key = 79867559c9919f394cde76b31fe22f793b88987001764e111591300f70c31339b1fcb8a3b476fb00663e4c53d8f063c792c130da29c311c114654808bb39ac7ad1fb9e40e4ce3f4d32c8e1f9bfb1bbeba408e03daa4772db1769122cc8a89cf5808b117a +Msg = d1998d3b3ff5bc1c8f724aab792de8a35c60fba4eb41f2342227d60380ef2273709ed6570847c7fbf5303966b630afdb095b02a6a3e2b115243478c44a69241d65e1a5200b2865600c1dd84ea85455ba00b82497cb75d8ff4a15de777ee8577398aa231db1603e52bb8350edb8607f492abf8801cac30efa7c1132a48334637c +Mac = b6b18c4c5364b47fd78c3d321dadf60de187fa68f5d7e55ca7fbf71f42c742411d379c8c55180d3f54cb9747b51aef7f + +Count = 31 +Klen = 100 +Tlen = 48 +Key = e9168c659c63b6f40523c90532bae743f24feb2e94814b6df2554365af73300abc933af5213235b8fa89c96ebfbfd196c95e02211204cdc93d5b86a5d64ac5fada6d0d557ac3abd61ca7e1cfa302448ef0be6376a87ea955388c85f11712c7e44b8e4eaa +Msg = 42657c6316fbc1bcd69a87c7df3ab06dcc1e471e9764c10a00db83943314a503a5bcf67b3f28402dbe32cdca5a44293da5b22a99b74d2e508835a4a79deece66e7b6c4d4e816bde217b88aa78678630cc2bde6c9fa0a5d9064d04087dd87fbfcd0fcf05558edc045a9d3c646acffe543e9e88494aac4d6305d555f1e3b06b42d +Mac = 0e9b3afab50782f1751c80b46ced531c07c9ae4af50c77a058a2db31dabb013b719c4c22f5e5adeafab72154cf1fbd21 + +Count = 32 +Klen = 100 +Tlen = 48 +Key = 18e18c27755ab04f7d00c63788da883fc36f314ad6dc3c72c3256efa11c916832b99948303c918f4fa48ac49044d75a607333550858615637b5ea2c389eb15545252d76e26b7448bdf9bb0430869a77b454b79d9ee42f67bfe7677e82ccb1e4657b45ece +Msg = 3b0b520933f465a422231fe07270cb6c5f31317da0525f7c49a8a9fbf082efee0e811e18a9aaf9c330ba1ab4a7b9335e03d29a56d8620507314f92a7bf9b0a6a373966f5f51f9215e59c72b1a3ec23fde10a83f10ac5f3fa24165beffbb16f467cda31885f7ab70209722fbeb02f20b1c07ef3367da2b1bbeaa50ebaeaeba7ec +Mac = 6e29ba429cf494661280e7a8702913bfd0054cd83c613bd6e837f1230e65cedd2498f639966383c87312c1f30bfc3245 + +Count = 33 +Klen = 100 +Tlen = 48 +Key = 9ac2e1ad014d3fd6fc343ffb64bf964ab83fe435b44fe7d4255aee84fb5e91d5a0efa0a3887e59820adbde606ef9e66547f2b21e034a43dbc078ca5561a26094e1a9f710e86590179c32af6ebaab0c3be5b58c223ec06faf3449cbf49ea3397307f8ce3e +Msg = e2b3d90746200181461d55df5b894b91cde375afdeae5682441a7446dde0ae2e9f6ed0a9ce4465e4719ecd9006538fe575fdf0e7435ac4e808f2844e23faa196ac791899aaa9470e86a0fe51c02fda63e10bce31b12a0319a970e2aaab8b6fabf11cd85f44174d086e6c13aaf1e7d411f9543a1590e8bc1d11dcb7e2df5bc076 +Mac = a7d14d03b1e40581db5ba0f54612809c3f03cee5c722f36d3d03608e2804b4f41fc5eb51e1406e1cc8dc046d29c92a64 + +Count = 34 +Klen = 100 +Tlen = 48 +Key = 92f2061c17e008f62cf70480508a914cd964db1f8c0de0516b49e077cee20e40b5a78c9d5db5962511f5feb743e6d861db9d7680cf0a9729f47cdbc814677a07406636f2677c8e58289f3574e577c2cc1963a95aebbd6aea035f08c39c65bd89da35ec62 +Msg = a01d062181b8bab5f1209dfd836afc630bee6688af02612e41095b54ccade3a26c681908634963a36af562e045ec25e39a0d9c2a035d4f6d62044fc975986d1eaa9eabb6344ef0275e97007a1f63aa8cef1c44b5da6f54a8d350909a4a3e09a701c8a3711b50c80a760f5d143a59f526b22245725bc2d9a53bf5050f74261d04 +Mac = 27bf46dd28ca5eaabb2fc9824095e7fdb8efefb167409b7f7f785897a05a3a8997ffadfcd5c6ed47ce218e72304bb79c + +Count = 35 +Klen = 100 +Tlen = 48 +Key = 6d81ede1cd618f73f0acd379a0956bf4ac3e471e31e3fe4618566fdae0aba8c69d3407fc41b09e541bbfdc979d996ad662005401707369b5baa5e454e92d4c5b5b7f98f06c1b97bbf5048ff7137425c92ace7cd029d4a1fd0f1a27a5aeba0ed4ae4aeae5 +Msg = d07e91f235ac32cda78a381adec42f86e8fdbe6cc114d93e23a637269fd407eded46df1b816ff5605e1391322f07c2b8943951e7baf0f3eb2e54c2c8f330ee41d2f7b0f9f10580d8a72888b08f5f5820dbe1dbb9eb618a601f91dff3e9e50d302699eed2aef53dfc29d005db2553598866ff462b7df106669d6576f1a97acb81 +Mac = 246f366361163cae164ba273d2b52844511462eb094d77bc3b7684b7995a6ae015d722eea129d7918c53acbbb5908acf + +Count = 36 +Klen = 100 +Tlen = 48 +Key = c10a45807b39df778490c743d9a77b7496bd9651b964ac28297b76e2f75d2fdae3583df0226114d95e0558b9ffa341f3a9d9443f053cf0fec54c16cbe2a72c53287cf366f543584e3eab985fd2d4a8cfe3bfd4c8c203a6bceac109f940d9ae7d995eaf0b +Msg = 899c13c9c430c4ad724f268c0d1f16da00ec0168ae1c02f0b5654aef743dc5b2cb92fbb421bc3427acb0dfd1ec76341979dd1962ff6d4297879d9d07f846ed74dd58b46668cc57c5b7d97da7576bb86707d167f7beb5db77ef52b8060be19ed848540988a14776b01d34c8b855e6e9eb3030b4d0f2de13b775ec6492b5f62206 +Mac = 0595246c12a0ceb9b18ed49d2edd2251782d7e3fe0afbd163834b25a31654a25409976513e12c800f5a4a2e05df1ae0b + +Count = 37 +Klen = 100 +Tlen = 48 +Key = ae9644bbc297c7dba36f11ce9f447a157bd3a06c5dbf68b4ea283f31ab80a6f5b59aed9c89043e3a3997de92cc4cb089e452fbda9e5d6c0aba405f9ffcbe5a8dd19ddaf136fd5301d6e87243722aa5fe8663ddef2a5a933c369409aea926d21a4cc79420 +Msg = 74e8994d0bade0f0fd90547cdca2512e0a8e63b38a21b6d5100ace5a5ade7829c35f01af16fda581a09d4a43899a6fc864095f7a0442aafd919cd50fdc7751b3f080aa8eea3001910a96bcd809577cd2adf34fa39c4928c66e5e8cf7055a8d5021d3fcb22f4edb666203110405e1619410d29df4f940177accd859d97e8e1649 +Mac = f1c7440f008ed213f33f246469a3618a49120e841a211378ea297c7540c2f2365531e2b1e932e4661f55033310780a71 + +Count = 38 +Klen = 100 +Tlen = 48 +Key = 222037722ce86b719e85f8db721b4507eee37328ccc69b80972b56d1580d83157250446ecb554a602ccc533eebc9f0e2c71a8ca113d9aa7f173d6e9eb3b55ffd45386b5fcdd62c884f9469af7976e03186dd42836213806a0f25456e47f1c38c637fb32b +Msg = 785ff8f78955df2592bd56e810355bd98054f275c482b586c90d8bdf6779b84c881716c98dd9a1f2ed6439bb1f67a461bb2bd3a1dc6c6627c8687249d33581f58057dae8ea92032162fd85965a58ef25829f1dcd30dfba1e054904eece85cf4ea849cdbd68290c9b39b1c0e087b1430d1cd85a638984ba53c8d9cb371f11ab3f +Mac = c56c263ef9c7054fe982d4ae76ac38c6accd30dc29a19ccb52a212d77496d9e1648da47c260b2427d81f0b65f17e096f + +Count = 39 +Klen = 100 +Tlen = 48 +Key = 3d017f59bee7d18fd4ba573f3e4f61076f5b9f6a3487e47d98c729e205e7d5faab673c57258865705aa71099a2caf7322b79551e9acfa577f5d0ac7fc0fdb9da66262cfbdb8035dd80f7def347c54c611744416c7200e62f5511c8905fa8207336e7572e +Msg = 93fb9be674a8e2643bd12f68b02d2b8470f4ffca93f11a838bd92e244fdb7c7dba7852342d95d2727ccef4dc080ecfc5285c14a1cef8dbbd67a7a22e024b9208b5b605d03cc04633e49797f7a857793399db27bb83d264dfcd157655a13873734d5ebba1e952c60f3ad420a3d731b1368a1742fff9a63d4f86cab47f73c9a527 +Mac = 2482e9bc78cd1e5ae912489ae9b51f1f21721c5856187da29a41a7d10c5dc1c34f8d47b2994aefae3cd5dcc7c8764f64 + +Count = 40 +Klen = 100 +Tlen = 48 +Key = e1d89c4790461f936cb9fca580dac01efde745cb8db798c9e5f83bed99bc8d623534869489baa74d4415311ec5f996012dce2d3cb9b229894fc1cc735694d803cb07479c91403b2409ed3864e3cc91b2347120cdc8443a08b9c9e2ab40243d96ccdc4727 +Msg = 6ff1b7b637e6317d8269c1be2781a4d7de97ed99022b6e9e96c6dbdc87302d7b30e245e423bed21b27fe744e7d6b22ae68cfc97decac3568d52e3518fb5ffa04c59ac189ec42b23c81b3077f32797052c9c1b66cf50c9f8b4d2b130892677cae340073cc18d998899971c178cd15586c0954fe8ea7b474ac06a3bcd4d3b07b22 +Mac = 7c7c7245d6916052fded129f08de09671350d26fe704461e446816ca790d53e1d9eda76e8e71f3018f442f86f3cee737 + +Count = 41 +Klen = 100 +Tlen = 48 +Key = 6af240550657a89df868051711bd5c481b1152d37451ec35fcf39ab23189748f9996c38261a0c3674386a734ad14de2f1fd5955fd4287d40a696cebb2c638c54256309a6190fab0c3dd8efa298bcae6c64169fd4b7ba1e5a62412b8719a2b622d5031aa7 +Msg = 381d043cbcf4919fb7d6b70a1df2b74dc9c9df0e1f405076f0f3052a9dcd117d80d628e4874b61aa22f43ae460b2dda85558a27abebbd407e80db816cd66cbbb80a44ccdcc75fa9b18b21fdb8eefcde37d50681cfb9e64b3ce9950918d90148e023077e1d39ae4db61b86dd6f1d010680a5939dc1d0e89e26c42d6852473735e +Mac = f3119898e26deb4a0f1177de7d8914ba33713d9226ff2d3de986798a6a7584b04cd3c7889a3d9e3803ab73363340362f + +Count = 42 +Klen = 100 +Tlen = 48 +Key = fbdbc0f366d4678654544804b8d6fd6f171668f2832e4623cdff0785f7d2de51e83f1476634fa1de3addfdf3bf4234627c31391e24df7ca9c967be8f4e6e243320028bcd21c81cb4e55720d921df1594600e01a4f83406713da53793f45faa980becce02 +Msg = 660ad30aa44a6b7dd2636dca34a1cca5006c1ce10862542a98aad2f6a2849fb91824f5589ac0fee151e8df791b16f596e8865e6e6447bcafd6933570475cbf67e8279a5dae1d1de03f5fb638119b2d9cd0dd28a501a7f402e643826ea158b0df9bbcca00278951e26373fbee5f58fa1f8219816e29a9858d9063c1d7f6a1fc88 +Mac = e6c788b11374ca821dfaa8a26d64364694e7be419104dd83368dfee6b0af84b66d85fabe37909f4706df9776a289c81a + +Count = 43 +Klen = 100 +Tlen = 48 +Key = 6656198bb79bea7cf7df472111bc7a70b076c2763f23ed9c140f292ae85e18098bf322cdd5910ff3e040d56674f3ae48c3676ef0574e142f48ad9fd8b283237f66ab1b80e00301447ace1cbfdf579a3dc1d8de5fcf991b60e15c229d76f978556146acad +Msg = c3593383ecd41eec6f51dd4ea8c65d7683827f499cc163fca57ee68709886956ced8d542c022dbc1ccaa8159aa59da5bbf1014cd413cb9a89cab2e44149e8010ac1f5f8647946b5e0e95af0211fb6b433139174a3df0a4d15bbd0593aa56ee0025d5dc36cb53552dfdb9713127d39996a2a68fa7d904aedfab5d745c11d83d90 +Mac = 20cc7dc22b3ea35062dee1ed9d271600b3b19e8b15c15de5e4c3ac9d9725f620664eb8b239b3a6a167c24bbadc4c4595 + +Count = 44 +Klen = 100 +Tlen = 48 +Key = da71f6b6ff3b2e902ac99a4946e8233a0dfaf7e7cea374476ec5475faeafd516ab91da44ab334f0c16e7926cc3bdc11275f56671a6ba5a15830de33337ff20856c23a7540f436cd75452e5bbfba26b03d157e412791c9f066c147f483f135c61250fa610 +Msg = 14c7da8a6ce161b9d8f26f09b72b82d58763264757ba0b1e7f7c5aaf8e48492a8471ee1f42a450413ecbc4697b3277deb9e847d3e969d731e379e2975b53cf9f11038664491183417b5f28db4b545861bb3a4112a0e5790053964d14a81f565324474d5f6a6f1f41f77644650fdb4de6f721bd0d65781a143599442f5df205cd +Mac = 959fafc3f154f612a76938386ded563fc09cf76c5952f76988b927415ec31fdd32ebc009dc69734881adc6eea6dd4d75 + +Count = 45 +Klen = 100 +Tlen = 56 +Key = 2ca67ae3ea3c84a2544ca8794457340e1e424a8ab3aae292657712798bb48eb4179e6b8e76fa281db7acee74f086171add5eeebbcb63b51eb4b1ed57ac22d13e7b67241f8c582cb30689ff4f381efd5c3ae09e07d1906e39947b55ca4d4e1cf2a22c2d00 +Msg = 84371c9ff40b745ab5300bc914512c1468f98b339704e204db54dd9ac6c534d88462163f61d9ce058a2ca16718aaf5404a1eb9d912460003d486ef636adeda0e6b1aaa56ad4882e3086fa2055d7e8b48d7836349711d9cc9b934d100d3e7f033c0c69e89e142d71bb661d54aecb734559791532bbc73fd7d12c5491809c9be72 +Mac = eaa9b697c83bc571a029a6df1f440e8c646ac763333d5f7a57a6ffe7cfda7f904750ee4c3ae887e1c29429012d0aa736a8326ba5c974fce2 + +Count = 46 +Klen = 100 +Tlen = 56 +Key = a8cefefa109facc85cd6f65b91b42a988af51fceedfbc5f75d28003bf18cb7b6e5c0287b90117ed996e1a5dd5f4b5d17c8068da1188cda5e357b7980183b414d7ee10522e05320b8a6ad51a698e4ca2795aa831e8791d457967243109c109bb8d9f93ef6 +Msg = 6b8bc0971c1c64e8b8df91397ab8f0a1f2823c004d48a4d8d6b8705fbdd4e8d217eb710b27c8fa56dc2996819a736a323ea3ca7d5c889fb6ca300c8463a0513705c7ef5cdcb50d8ee3091a8fa7a8b4974fb5c8ebd9bdfbb2a6314904391aec453c0880b1c34b6437d566638b29c194772d9e7e724c4e807371a57107c7ab83a2 +Mac = 9cd00b99f73ca0e8cabba5513b575698fcf7a27a396dc33afbab9872589efa826b2cb2eb661ad8c36f7b99d623f440a04f0767c2500b0598 + +Count = 47 +Klen = 100 +Tlen = 56 +Key = 469e10b87afa551fe02ebe13b7d58da068fea2f100d19416e2760004be3221ddbdd3a172fe4faf0746a85256f312fdd63258633c727c8c42199e29a8751e2579f5057c9099a1505aa7703adea040defa7293c2efef4860207e787916109fadc856fc4919 +Msg = 25bf516bdcbe24c2a72dade92fda0ec8cd91781c589b9e1d3b856a5eca23eff4d6d3a0da7e06bf9449fd181372d1eed983b6365d258003b1376742621d07a7a05babe79e62ca283ca9d2b5e40025f7b12261a1d789e52a3f8691807190ccfbb7ddcc8f7f2f124702f133ee2382de0f9ad11b21512ad1fb0e4f8b8e53cb7bd283 +Mac = 6517653cd34e77aa1c7cdfa793198aceb26b7e211eb81d8fde20e89f4fd13f1016de122524968087386e6f6f9ada63cfda9ee3e276d7ab8c + +Count = 48 +Klen = 100 +Tlen = 56 +Key = b37cb20cff52455a433e9e3a22622601ece6392d7a482a535af388582d14a0e44ca94314b2daca6f168d561c57355d521dea620fbebf030d5e5039f25b9adcc6e81065abf7ebf8c85dc1a2873059df0074be5fb5f792097f7aa541c811c666fbcdd99f39 +Msg = 6fd8b486cb00c5f5dcf7a6493df96cd250f51b13dd9f6d74fbc1cf3734d1adade4c9efaae233c43662839e851aaa7e2aa4e8718724e25a882af4f391dac80fb44a2822282b1002f6ac08eff69bb0d2facd9dc249c163cc4f80f3f492c72877e8689c53e8eec0099e802ca2830833f0ab94bb1641fc4b4b31c566da2445186db1 +Mac = 0777df7e26b053d025a49599d9df51dc826221e47879bf916dbe1a6b79342d757de7af26e36706d5d81f9244c2630fa4d71f3a24e03106eb + +Count = 49 +Klen = 100 +Tlen = 56 +Key = b2d6b897153734836e180ec29443f60de8e37b8a8beadb4fceb01922eadc5182f28849ec05a04857c88b2b01130eb56deb6d27acb1d310dd98f367f05df0d7af327a5afefb3b0961bc7133c052dcac6762da675190d147a6f1cd3382c26a69f85af51457 +Msg = 59b911d1a4a61e6bdb3519c5287522924abb87f89699e62e3c0e9249ccfb3853f9d6c39e9ca27c57fc1f765e4c3e295575d75df8169e4aacc954fd5aa93afd7d11cb2f7aa6aaf73197daa0d1232dfef05cff51db2b236d2a951e18983c93b41229ff1e0ec8a7d51e34ce5fc5b52ae88988992d49de1198d126d5acac8fefa439 +Mac = 5fd16e1abcfe6fb1b815f680ae1dd7d6cb833cfda5f75e1ec41e3dfa48aabc198b05b6cd2b8765d628ec91a380cdeac267f5bdf34f5c45d8 + +Count = 50 +Klen = 100 +Tlen = 56 +Key = 10b1163b3d936d7af844fc2dfb1efeb5fb995f5ce579212f6846fe0cb3fd4ffb80052cc15164d5b3f93350c95f4f54f37f5266b0b1c242dc2e887cc9d0a36792191d36ac773e61bec6014bb317c4210db043057c54c76cafc49bc46a85c05bd9e4e17c24 +Msg = e88b8e34e2e4ef0e9d1956ff980154240c4107f51eb5eacb5812f1a05ac9d616cd2eadbb99d9bf8c584c95b80ad753a60ab948384188c25299d32796b4054172df8cda5d413b895d58edcbcda76c555da891a95a08ace8301325e72d6e64848704ef3ba142d2f48a87441fc6d6870352cf1053e2dde8036db05259ebeeae475e +Mac = 0247e758bda41cc1b50221d2f64a689ea8dabf663296ba0a6533f84e464b532f0c2f6d93182c1e6358eaa32816dae8982e366e7572697712 + +Count = 51 +Klen = 100 +Tlen = 56 +Key = c4b4ed564b8d509d63bba83602e8433d9b4cc9d49f24d72e445feae7859a7f976a4e78a68948c262cd5a354e7651bbbd6126b5a08a799a9dcf3ae161f7aa2236f28278d8627129845bcc895367821bc6ce4efaa2143077fec21d049a6af65172e5b7b493 +Msg = 7dffc73782ffdbfe64f56655b6363a567bcf009743187c59978c120297d789cee23110c1b6eb7ee05947dea0b78d2b9f4c5b5892443d937ee17dcb2c1e3d70d792c27a279613ac63aac31ae2150be9c2cc1c56dd95b2f9f96ced4b3f265d67ef545b0d516aa0ecef2110210119d7fb29c3b701607ea0363000829b25f85ff67e +Mac = f201e33cd8221cd4efc0fca3e5af2838f9a2abf0c62a7660782ca0c9750efeebcb3e0a0af9fd51a6f2d7daab503a3d874f4848f85b9f6aa6 + +Count = 52 +Klen = 100 +Tlen = 56 +Key = d0a9fba14f144d37250a3b38021286705373a87f0ae9b92c9d9d93fc51543504b8e765fb78f39a934fd1180954c95dfb8082bc7b6cbd48615c43f3e57d1cf76d6b0275a3f6165ccb26d18d547d3c3dac7b649a596808b1464d968f5a4456a64ff1e473c2 +Msg = 43fa0f5278e7e15159e73a788d92a6339ddf8a65b3df07b6a1ab212f249b21046ab837b0d3746447f5999708e2801732ad83201a2ab4d179f6d0460ab76e0155a57c8ec54aec660185ab1579d5d3983fd421091902a97ed4c4c82edbad5bd508fb2e5ab965b8af271405faf3eff3f2021ba18b8bc225d56e147d21c88cc867c4 +Mac = 1fefe5f8ab295f2249dbd467097d5f4bb19a6e82fae3f94b098c9689276bac58534e8eb0d4b2238d81e079fbd03cdaf08ed35ddc367d4485 + +Count = 53 +Klen = 100 +Tlen = 56 +Key = 6eb9d2ce6f7a80287670c52b360c9509f022cb43f255cbbb5ecf66112c35fe2c72d9ea17e3321b0f968a00da0af7a85a668c276105d03ac7316f2eba2f30fd567d27bb75572c30c97f8cc7283efea726a6d81fe91b824739122be4d717bc8d10150a0c91 +Msg = ed106130abf2a2f6023549fa4a9b96cce9c739ad24b8c33c35915b529d9bb22abb8c39c59e0a918c186b423813bfb1ef28104caf6ee808f090140d8523a8afc43643a1e62a9465b1c41d075480370b922857a422a68f27561758befc208e618285bc025df79a08aa2ed4ff16380d8efc1124a9ce73b607b6efe4d77d3d56afab +Mac = 7e5bb39abc1c723cc0cc7db4c45867d235ee56d19234533838edf1e1e55c7c43211b2d96d5f40bb1c80e0900fedc4d9621106db1ee57eea8 + +Count = 54 +Klen = 100 +Tlen = 56 +Key = b54e1636dd82b1fa0faf26ee7bd2c828b1cc44b0641685d86db0d4d0125a447589074d6ab88fb76a3fa4b9dcb80763a83dfb394a2bfb212526a87f195e059e5710e652744fa6dbbd04190dcb34c1ae578145204ff41e3f28f9948d77abe98dbb52d46c7d +Msg = 93ac6811ae7ec7afd82b7ca0196fe026ba3ab24e9eb40f1ad67e9ede6f3b0ceb8e50b86bc0e7af8c8b3adae1490e7605367dc581c7f903ef3d8e9c607b679cfc149467e8a90baa6d72ec91561a093b99d0a56b3a9b7c806ded04a7fb7cf34fe64d01dd5011efa199b5c809c83567152cb1390b43c2446cda0e6826761ae50bf3 +Mac = 4ed9c419ce128ca28427622a62b8887028142c334bf9ad64e1a2a1e63b99814bb9e7894d92e5e6db5baa8750d7016178435e27f7e3b84f6c + +Count = 55 +Klen = 100 +Tlen = 56 +Key = 30608b4bf71a69c879e650729b646c9603f0be05cf816b1786d15af04ebffd0260f16fd3babdc001134a8d8314f2d331c5eb048746275ba6bf786d9b99f802e4efa822303f57736766c6c2eacb09df1cda30ae21b4277be624db8e61d69eff1ac3cdccea +Msg = 363b32accfa593e454cc3ec83b9d775a0dd027b017ca2ff863c1fcb9e6215b5cfb2e8fea10eba2179f3bf88061472a31be1f116a87a420a3e7a5f7cd974836db52ac8f8189cc203b57a7ff92b79e169bf51d31c0627d55c24c2954ff2d009ef123fb5af8a010b55963567a86a769e4a09a10b03a101d7560799538d710113ba7 +Mac = 359bd1e49bc1c69e3662ef329b245f659142f3ed348cc552c01bc10ec72497893574156cab5af2f4d216cb4409e62e03bb53deb53a4f22d7 + +Count = 56 +Klen = 100 +Tlen = 56 +Key = 22943268c52744116c87652ed6476a919a73c03fbbd0a6d17c66991a753c100ae7636ad24d35254933df508f4b1d43f0be458d0bc0872e3367730715bdbb8e9b143bc61199366f872ce379766f28bfa61da5f24e9ef4d37ed82fa6ba47b3e3e750242e6c +Msg = 2d912035dca0d990741fc9ba4dd33040cd5cbc6639bafecaca0f1f4504a6cf1243357f32975fd00ed17d4b5fde9e524b54cc56d04b924b666ebb59e0525bd59406146fbbeb92ad1bc55898e313bfb5d69c3b36ab4be172b43c2693bf17ea8e3a9db5599a804058fd7837180d933d3f28cd31c3bfe0af5bfc5dda33a8fc59e44b +Mac = b226c29ce8b20348c898769e3f370bc89d9f1a00156f114e40cddca52dcec7f1275591c02d9b3e1a49bc6bb056f950a71d4c0f344ccf44b7 + +Count = 57 +Klen = 100 +Tlen = 56 +Key = de48fc7bda19796ffdf455ce423c79b0f55db17e67ae03fae69b3e7fec03d58a97dfee7a5925b794f1ecf94a9ad0efbd829858807d16cb9ffb4f4be038dc1b48b290d3e1e05bb4bb216e3931f3a0ee6d6511852fcf0d27c9c033086f38d63ead17a3d339 +Msg = 77914129b7af927556872a8eabe5343f668cf904217b0b6f386fc3cadba9eefe61f1c4b4dfdb1ab9fa49d8a7f931acc21fa1002037002a0d7096e3ad6b4ffbe393bb4b72ad5aea62af17a4a6d612a7fbf3a28013069b46f30dcc159a1eccbee3b4f7bdac47b36c381ff876d2690f8db38b996026b5d4c7eab81a41d81caaa1c5 +Mac = 4c24ebefc034892b90e86904bf4670e94710595fd6368f643b5e011b7de022fdaf112a21c9fa382822c9195b1fef7e2788d77de0fe00d073 + +Count = 58 +Klen = 100 +Tlen = 56 +Key = 7cd4636116d91f0db16a82de94032cc37ebce435956d2f789f15211e747d74ceb318d743b52e8897bf3925c27c90c05eaa4231ad1345b0dcbfd0a3896805b4842ed327d28c1b6af88b11ee7635e636914da42e553d59bddb50779dc8217b6b1654cdfa17 +Msg = 8b6b7edfdfaa53e67816ad445bb053303680030744e46f3e7127859abf55f3a3e84eeb56451a231aee7c21f523cab500eafbc718fa0252d7d85bb1c240e31ac4c6ec68dcbd911d125847a7af0fb5e2ad44c6df6d27fce4a8d707b3a8ca960fb86e6d7dd910b748b6fe9ec7dae81ae2218c06d36c93792a99b55314b32416dc65 +Mac = 7d5fd0ed7cc5102436c6cf22dc172ed00372b111a25731a7290bae7b87806f4ecaf213726f28cd6cee2c143abf89aea94cb44e77946a6f5b + +Count = 59 +Klen = 100 +Tlen = 56 +Key = 782bba866ad86d885874acccc5c049b122be4fe4fe13dade77b02caef4b1fef91685143feb50145f658d985e0bf88264efab9007e08730cce0d595ebd92d0a538b9786eec9f18126e59107a8692b0b6807f4fde5d3079faeb008142508083983c1a9391c +Msg = 7dd26a4d522342a5e9c081e18925c6f2ef6adb5141674240481b1052d94fff2d9476be8fd2d88b8fd8ef042651113aedfb500828a09fa3044836711dad371f43ef91ee7e89244d4f8427ad39eac791807e11e431aa129062b93d4cbb460db536f4eba1226051b06e543024243e8ff234e0751873480a32e303f948358e18eb8c +Mac = e23703c386fd6f868ac392c75620d5bf3d0e3fa247c84564859367de317deaeb796177446c32b23072ee27939da4ce89a7da3a51baa6cede + +Count = 60 +Klen = 100 +Tlen = 64 +Key = 57c2eb677b5093b9e829ea4babb50bde55d0ad59fec34a618973802b2ad9b78e26b2045dda784df3ff90ae0f2cc51ce39cf54867320ac6f3ba2c6f0d72360480c96614ae66581f266c35fb79fd28774afd113fa5187eff9206d7cbe90dd8bf67c844e202 +Msg = 2423dff48b312be864cb3490641f793d2b9fb68a7763b8e298c86f42245e4540eb01ae4d2d4500370b1886f23ca2cf9701704cad5bd21ba87b811daf7a854ea24a56565ced425b35e40e1acbebe03603e35dcf4a100e57218408a1d8dbcc3b99296cfea931efe3ebd8f719a6d9a15487b9ad67eafedf15559ca42445b0f9b42e +Mac = 33c511e9bc2307c62758df61125a980ee64cefebd90931cb91c13742d4714c06de4003faf3c41c06aefc638ad47b21906e6b104816b72de6269e045a1f4429d4 + +Count = 61 +Klen = 100 +Tlen = 64 +Key = 7c98912c74421362e112a2f98fed9babe0057fc778b4453239aaf5ac724b725553539770a5bc8666b8e13d0e9ce36b2b934c8137c7f20b5f391f41cefaeed92e9df8206cec3049bcda0c05deb9e6549fada19aa2618ff560f892ce6e4782aeff41cf53a9 +Msg = 74e8936d83bf3f16b8d03fb73384ed8f46bd32343f5df8358107e2fdda293afa103a2bffbd4030e75d96cc7ca6ec7c97188fea88d4eb63b7b14e8b8c8dee4f8de12e1cc6981d4e6e223fecc7c491924632c7aef45fd8ef1494bcfb06c074616b0f4cce8abd5d83f32d550661357b18e5bcede841882c869251db9a331ac456dd +Mac = 4cc28818486bb9b1b52e333dde71f73acc227488453fd907c6b51d349d67af1df29a9f225532ce04f50395fed565e98d78978626df93462d3f012f7373347298 + +Count = 62 +Klen = 100 +Tlen = 64 +Key = 662ca8f53b97edd9bbd43b1f9e4ea49f2ac14417faee257aff93608bc49a85abf6913def235a2e76c2241ffa749a5da489595d25c6a8a2026563e12f5e3964e0e518ac9c34e45a938a6f503174a613f34b08737afe5d6fde11a45344e64d23b33ca83c23 +Msg = 0c057a2b56cb7e651c6339e4c91a1a72d51af2a646de9dfd77e9e42c18b8a2b576f526b9fcedd90dfa442090a6e784bb614311793bb5fb39b8418842d586294746f1ea3c02320d6801ecf2ba44b13b60172d2d9693a158bc66947aacd7c5a14a0463905d6e80649db8c4770cac5e858a7f400da4568cfaae08498311265b50e5 +Mac = c0d6e13c5746369d49bef107cfc9a465627691320b8203233359e6a49659025ac96a6db6c4d460224f6aa1cb7a6b8df311e066f6109bd466cd9aee3058dbc5f0 + +Count = 63 +Klen = 100 +Tlen = 64 +Key = 0cc5bca2025bd6030fe0818e0a61ecc730b2e5526da942c0d7897fa97bc1a8fb5dd77991ba9fc50890b014ce6118907b334f2265db6ad86e7b918a214ab3bdfe9378c711017834ca19aa6908081f87779ff0921c9c75d32e2bb77a28ac28881cb792ec4a +Msg = c532714f570982993d4b22c7d07a1e79ff5a75c94eee75dc1fa222b630cad753664b30f3c99826b5cfe17c67dd875b9d0bd2390028e6ffe9fef36a2fd6adb13d3ffc69670cf4a67e9c0764a15e7925579315dbdb561f07b7da892394f4693e51d9abe65228034a1b2b26a01d5a3ac5cf208b2301e27fd86e3ecc159090e8c3b8 +Mac = c34bf0931b2dd2e41956dc86996e1427379d0c89739b1c33fa3be5b0770673a20c5335c6d22c766826009938fe1f4d478b882b59a3b19fdf25bf18f043fbb3f7 + +Count = 64 +Klen = 100 +Tlen = 64 +Key = 7d407fda74d3a127b2ed14c727d0e81a04f6789d20eeef629b670abdc18b1f41318e5eea3e86579c957dbccc20c4687d2b8ba16fc6af9a936ad33cc1dfb226ad5cb3f318f1bfbb43224fdca9d5c9faed6e0c44123849f9ea07162bd11bbdc49b48dac6ca +Msg = eabd8db90e6d67a41f096e4369f77cd6ba23da4fcfa459120d9c9ef9725fbe9bcad80bce26292d6a8a927450e6946cab4756b2764f47073fe305a32a237ecb389f55a6c9c7874d60a44e21a7c64561b37ecdfc884db0a3e09b052328ac54f2ccd1fa07b4dbceef0fd5041e4ff3528374c5525f8eb028567d9f64c7fcf62a59de +Mac = 771bf59b658cb17576761d078cf6b1474db746a2201d30ddf289fa708366a27d6a53959bb7eb2b963622b326edaae3dce086dc364c93c874e50089b69c5cf52d + +Count = 65 +Klen = 100 +Tlen = 64 +Key = c367aeb5c02b727883ffe2a4ceebf911b01454beb328fb5d57fc7f11bf744576aba421e2a63426ea8109bd28ff21f53cd2bf1a11c6c989623d6ec27cdb0bbf458250857d819ff84408b4f3dce08b98b1587ee59683af8852a0a5f55bda3ab5e132b4010e +Msg = 1a7331c8ff1b748e3cee96952190fdbbe4ee2f79e5753bbb368255ee5b19c05a4ed9f1b2c72ff1e9b9cb0348205087befa501e7793770faf0606e9c901836a9bc8afa00d7db94ee29eb191d5cf3fc3e8da95a0f9f4a2a7964289c3129b512bd890de8700a9205420f28a8965b6c67be28ba7fe278e5fcd16f0f22cf2b2eacbb9 +Mac = 4459066109cb11e6870fa9c6bfd251adfa304c0a2928ca915049704972edc560cc7c0bc38249e9101aae2f7d4da62eaff83fb07134efc277de72b9e4ab360425 + +Count = 66 +Klen = 100 +Tlen = 64 +Key = 52d3e26c59df9bf3f5c01e311fd6611b895dbf6e8e918ff16916fbfaa6981033d7af119e880511d775bac09afa078684ca22ce1ee462a517c3a483d1d5ed68202f512b4e7f130f62420d98a137529d5613139dcf76bf57a81e6e944c5b8048b8c281d982 +Msg = 2485736977ef55a55abeba3b8e857ee2fa5beb144324e46f9e12625be26b25ede28ca30bf92e45d1e6e8d234daf52be5d0383a781d7d25c64802c7901b366065fac08bc574c3718618603d778a7dd044d6c5b59903f0578aec4571334b5dc79b172914df1037438c9830e14cc4a6d3c5b30c44be1e06e28331e44a8b9968c059 +Mac = b1c34ea9d837b4e0b0771792384fb5f5b9bb5af7226d461b5ca81ce8079c6472c5c44624a640f01960c8a94f6aaca5324c0da2cbfdbcb077cbdca7f6c6a38e75 + +Count = 67 +Klen = 100 +Tlen = 64 +Key = ce1e3b693ce203166bf045472fdd1457c8f6591a0ad41912bb30f6e63df8f90f6ca18ed5cac0d07adad407b5c9666f6253553c77e56bda3aff3379b1dd0fc95a5685021d04da287fa5e28d18c11697478ee7c3241052eab684b5c467ffe1aab45370a029 +Msg = e2542c06864dd3a0499493e144a97fe04006b68c83a5dd4ceac3cde238e48895ae17728fdc7bbe84b6022694ea75df7371b8ccc76450f2d112222c504f7d1fa20f5b712d33e436fda234abae9c5e278d4bb14efa9b3a88114c89b28946b813db2caa91a73391245435b38cf8016d3f77f678a6eed06b8852c181c754c49d4a88 +Mac = d5e6ef77772459874a73fc4f7665cd3ade20468bea1ecdac41142ff32350b8cb15828612050046299f08ccc486acef0d0c04e0f8feb29045ef7e3a3db093d512 + +Count = 68 +Klen = 100 +Tlen = 64 +Key = 3699d9cd078a20ec0c96eb01aa60df6cd5dcb554260eea8e2e15b7c00b6943c638611854aaf8d3dd18d020b49a77e67275eabf973557ab74fd2705481c3cb6a9e077a825af7e7e2a53bc822396a9dee40f4b10483bfd9818d06ff32f4deecddcd6e57388 +Msg = 9186eaa3b8e785dd2a747297bdbdd4f5532a47b7008c21686ff7f8d881d464cd383205f6d45dc8203bb267ac9eb12f415a5406be1c9fac73497941909dba08dd12856aac03d83e0d916147404694fe70f8fa929ef0cc2edb4cc07abaa2236405e62820af8e806d0af32a1b3afb8dcaeaf5c4f43dc4392e074075aa3ed93601ab +Mac = d8bf5ff4392938534a7962c64985f163ce7c95e6c05f93cf704106f9bda7c9ae963f5ea87f73626f67ed3146e8611ca62ef2eeb4f9a13847dc6e7ffbe3d851a4 + +Count = 69 +Klen = 100 +Tlen = 64 +Key = b0c0a896096bc42bd0c5ea646779a4f1ce541f9cbc04df29ef20b180c069e10efa50ae68ecb8fb31bdfc473f0034dff988b452037ed6261eb0fac9492ccaca2c0ec349b796f1ad077ef995898a5d106160fc100d9ad81c451a1c46269d5e5d90932163cd +Msg = debcf190ea6ab2358636af5cfe4b3a9bdc1bce160bf350aa3cd3956b897e255158cd3e2e83481ce3b6f778d418764f992d48e4f7fb6d080e6b3799d3f35949c17241a0cc5ba84597166779e6a38ce45681ad944cce7c432baf9cd8caf2b33125f2c12052bbb0b3b76f2cb97be9b4813a9ff1e5fdcd478769d0ab5b36cfb466e3 +Mac = 2180018c7e9c3287c3d2928fdf36dda80be4fa21d3a879c0f617eb0e43c58836b0cd714a8081652f8dca9a01925a4f3ec5dbe07b5160be7b1ac58ea623952293 + +Count = 70 +Klen = 100 +Tlen = 64 +Key = 1ce7e20abbdcd1154d4b536714ff534a01b8e88c78da34d653638c39291fd80ad01f3df02067fa3bfae7907789ad2641c8582b5a45d03dfa24344a676614f5c56ce13b30b6a15608f1e7e18c31033eab7b76351686a9dd9ac2dec0ad9a663a47f61422f3 +Msg = 46ae8403ebb4c8723652b9848fdaaa537a50e3191bd94442f9702bc602db98b5cfdd8f142aaebee7cda8608f6d436156f743c3491a30404605073155722fae3be3aef74d2b9d128331d9b6cdf1fc68aac38ce4f6e072be0322ad49ec0b47b82609888358f86b0d6de94e83e722ed077666910ec9768506a4d7ca3d33d60bfe9e +Mac = d032bfb5a538197385eb70673cf8f93e31fdf9c22c0e90008a454ba4d69bdc2232475a41723c8a5e3b29c6de929a7a1e87b64beecda29683d0d925f00ce23b35 + +Count = 71 +Klen = 100 +Tlen = 64 +Key = d7148e81b94a9a902b5980e751a5a59ef4a2397ad4df251240443e30e598bf7ae445f65227603dfaf4e42cfcc23e0dc94c0f90a0e52dc1b10beb36833e9a8d93134f163e84e7cce08a498a3eeeeb7b215b98d344b970bc70b63093e6a5b355fd8cb9540c +Msg = 251cff72773e93021e816407edbdf5c1b0dd9a0d633f41e7a25e932d61ae3ca5ddc78642d2c62da3eff06fdd8799627a89458ac2b20cab390143dc686c58dde0d1feaa7d2f8a50e8169d005f5c0462b912dc2ba4b6faf232aa8a4094e5f5e625e90993aaf554a5d77bd04016d4c69d8533eca53dd8d0bfda867ae638364dfe7a +Mac = 9f783389d7905291a0446004816233918acfbbc1d4443f4dfdff55f3c151a7a1ad20d0a18d0aafc4bde38e3bbd9c7f672f8b1d14649e8f41c47a0fe1ca051d8e + +Count = 72 +Klen = 100 +Tlen = 64 +Key = c821be1cce09579ea899899d24f8329994c2c839cf0084e27857c688837fb5c4f4f72527eaf7bfcfdda75b37248eb153ba4d31dd418d2fea473643c0c9e1f0ebf591838e349d3ef868f1b67772777a71f8cff5b0654696fe31062ef2628a99095355a0f8 +Msg = 98b0c5e030490c0de1cb08d49ab64560693160acedab1a450ec2ab52eb6459d114344823fa2f94cba48f9d73a3efa22f47b19206139d1eaf6fca13989dc2e72deee1915636fe9e417d4e8263f7842cb9373ddd549f9c39141b319fb40f20b6068d7f4880ccff54f8d5cf5eac80bd0a859f9fe99d79f193fe7abff6ad28c6ede7 +Mac = 8af5f3e56ba1a151975f4fc6a784aa050572f7b163a93f24f016395ab4688f39172bf20f1bc246d73b971d022b3d49d1b31f40b0a121b9c3a66e09096d4815f4 + +Count = 73 +Klen = 100 +Tlen = 64 +Key = 8ad2ff9cc9e5979ab79e2122f2b6c0d75f0f19da6bedb79a9762aeee330a7f6169f93ccc7ef2ed2b55d931a9356b29fdcb2d91f973a23060b3c173f908a655e1e6888125faebbb90b2177cc2ffc8dc825a27b55605f906509317952aaa1ed996086716cf +Msg = 18aa61677eb2e25b7f5738c929c4f4ccb69749a1038b1a6644545722f7cb8a06164badf3915b3f3cfb8d97ac83a677cb27fee45d242a352cb1d96b07ecfcc00b152a8321fa4222c8b25289158eb7aaf74d865dc08f2b6be18d50e5f50601bb027d0d89fba1afb4890d6db60a3141b6db90f75cd22dd6e30f3f8270f52c21a273 +Mac = 3aed2fb463393706efbbb98fd426075af837a8eab622b95da9aeb0393188665336f0d46bd20773fbea36aa289bd702d6ed4d6080449b680c92b0355fcbf13ead + +Count = 74 +Klen = 100 +Tlen = 64 +Key = bceaf34d50c1f202539233630b16dd048ea23f093c9f713b8d3a385b0d5c2bb6a4dd14f91bf59947dcf31c89f931df0570476c33ae7f34cb51897623327062b8a3cd7f0af53b4aae3e0a209e58385dd32d9cc6163265241332c332af4de4b99b4022fa29 +Msg = f3bfa5c1f1055281a35b48f86fa3ae454c03eac56ff064cf268b8da20431219b3e4da9ac55714309f5a6a5241e0060dc817562f12deebfbc6a9fb11de594ddb40e8dd754bf0ce9b41eac1068c4b448101fec09d014b01200e94265246365931e2b2739a276fecbebe51690acaaeaee4aed12e8486e5be5036b1db39fc4c9cb41 +Mac = bb714844b6be93ccec0acb8780996b2a4778c42a8a76a49eff87ced3a258815d76685dce4c8ae37c244229f17e0503de089a043368cd300d13f842f28c111fbb + +Count = 75 +Klen = 125 +Tlen = 32 +Key = fde15ba900e6648c9d8471f00d9b32d71e5383b9370c931c96944565dd9dd6eecd6ec15851d8df23be6cd37b59eba5551afeadbbaf27b364c4f854888283a7f255112157f317b6e69a65412098a126ea11f436e1fd03d3ed702154191ec2aba21e33444dee8931feb8d88587d3a5fdbe8d9de6d228873adf22770dbfba +Msg = cf65959c760826becc0d3c4cf75740d8c8bebb9835b26b210a219773db9b9f363db5d74336ab9566f1498962b60b4d361a833d9f73fb89de8f5c89bba64e50ca8ca183ed2bec6c1a31734a5f064eeb2301c87daedb06a2ec64e9c26d7434a5b125f241a33f12d063f4552648ce6a4226e55723cc551addd1ef90eb912f97c772 +Mac = b1a9135311d32f5bd6b73abf54088b65fc1d23e4bed1d33879a707c5c93e8fba + +Count = 76 +Klen = 125 +Tlen = 32 +Key = 18519ace346e2e9987a25038d7642b7fbebd3a49b904005f7bedfa9c87c2d24ffdefd5e1b4c4a7b88a77355af868ecd6eaa92960cdbef03be9a1e0dcf10a664cd8ec32cee743e7c20d0d17c976966e2a5ef92d7428e4da65aa9b360bcc407029515198dcf472567eb76ddccb78771942c5b530cef1fe28a667e3e5723f +Msg = 7210549b3edd9a0a700b061f65ce10437477d9e5dc95bbc1fa612562c059a6e5622a470152d31e446f08209f7ad43725c98395103fbf47057bf90d99500b6913751bf6737ec2fbb40b6d404f4004200075cae0cc2e853f434dde4e03860a827d14aa08fcaaf058e3ad040d35a0a6f45be0146322912ecc04d8d891a84aa01aac +Mac = 2b2649c399f3716bf33f7937579df12deaa8ed00f656f8240468a3b022d411fb + +Count = 77 +Klen = 125 +Tlen = 32 +Key = 739e4ce0bc133f599fbf7b220a650933ead7c602a6670a9beb9f88f3af3275797031edefbd829278f88f76f25a3b3b85371a787c84e15f54961b9d132c1e82dcb03e62bfba403bd5d612978d87b9b4418c8ae30d619d2ee0097f3dd30b277bbabb2b74f9ba34819ac0b0a89c99c6be8d6e8fce5b4683bf67cc3130db53 +Msg = 8deeaf2e1c03647268168d1276608fb0ef3e5e4088da94c6c108c061d26e0089e2e8d2957b2b27803ba8b9ecccb39f6716e41eeeb2bdc3afa28eae13409631fc756b9a4c2b9c4ca6059415784dc1bb392ef6d8ef230ee8f5afd3a1fb4f1e834ead3faf5a169efc6d2ea348bde2d40cad9f3d334cc1152d1e4f9e3f20e54d1d06 +Mac = 077139064096116bc4f0bca8f2237196d1d9a244e6ead5cd6660c9ad77a28d82 + +Count = 78 +Klen = 125 +Tlen = 32 +Key = a5ae601409a8433b6e34b1f95266be2cf4163382139178d4f98db7b6b8633e4cb478255f61fc31af4ed8f98b63e147a06752c10fc479c9c28fb0a1ffc38fd33dcd60d0374ed3d7401cf418d68a591a79e9a05abe4e19359f96bf0715a86d95e9fa4ea8c65796fb94df6f57014f36fd6082e844b738d7831317a2311fef +Msg = d2c5ea2b497f97d48372243e4c4076503e3383b99d8d56e07f19591e3006d32cd4f5b0d74e5181fb61dfc3ae159664bc5db08354f6017800928814da364429fee1484d3b6e12dc0ebb193cd00ba5652ea9e3a0dacf398e80c5d76dfc4d8f97ca3fe64bbd716bb0f4d947170bf616818e6bf561b3eedca348602fecea3d8f2478 +Mac = 2d16656eceaa47a2cdc4c4100a0c5e343299cdda14be213d1253fe0afa17cbf9 + +Count = 79 +Klen = 125 +Tlen = 32 +Key = a39a510d232f92835616987d7f9a50c8841874c59411511b0c7ccda99c61a8bfa6a3028de61e1edb58f165fb561daefc0150bc21e3fb0891d3aac1501895126ed172a37f948e624b551c83c689cdc5428ca1f8e340fcbc53f8fc8bb8940afae3edaf3bca73a9e739143ffac460d12000ebb32ff3f33cf4c8431932c757 +Msg = 76aa892b7824da3d74dee1c05d0dd6a0be232e0e58e8612e0cccef10fc7ba5e2eeb31c64f152849c42b49fca703b109ebf2fd6a9cac914126d8a138ae2d189812aad1c9aaff0225d2785ab2dbb03c1796981ee36a7adff8c491808cfa4d4a8b2f4418eb7fb243ceaebf90bcf868b709984c17d9c35bbab05671dd6c98aab89db +Mac = 0cf6ccf2f7810a4a020d0ea97e9ee72cd36f41e13a3ee3ca41030ef0f45ba03d + +Count = 80 +Klen = 125 +Tlen = 32 +Key = b65b916e8c8746e59d281f6448f8800b34cc7cf32b1747cd2cb0eec5bbd545ad7c6f21570097c842df5aa67907b942b953f470d26009c74f9c7755599f4792d9bf4d93dddeac803d8798487e3a6093f603abf93151017194068e0c40cb23e33aa67e4dc8cecb561ebe6b6d3988f35d0c6c787fdaa90a2de3937e7942e6 +Msg = 037d44818301e6466ae7a7f0ed1b0ef184cce011a61ffbc0d32482aad8093a8d4f8d344765b8ad34e0c932b660710815e43eca8a915a5496af75e098f5006f9f069c6b7d3bd28a1da304f51648a3aa7fb4a31e06b42c273c5c931a334b88304b31912f498eb746a9bc7e38362f1bbdd7fce225ac98fe3e59e26478a2640a4739 +Mac = a78c0ebf5aae01aa7a33cb0a5ebd33dea4d010ec10b31849bf8478fc33ab5b15 + +Count = 81 +Klen = 125 +Tlen = 32 +Key = 9cb615e2eedd8df96d56803e7fbfaccce3a9e66f45e454090ffedc348306dc2807951ce0bf100178612703da45a16099bc5c121da38fff01385371b92c62c578f91e675075d5fe9ca743e39bda58d85df13cf7e3fa91e88206f8578837d6a5221a58de7d37b4ec2ce7b20aca666c7be029517b087270765321f478e9cd +Msg = e3d0c3abdef069e6e4fa35015797bd8a9d64bc9b75f20b028b12cca04a4fe80ff1bbbd88e9ef1003564d499fec88df4503671188eec5d7d089dd18b812c41db43a3746f77b97fb94ab32e6e3d2c45f26393e286cc3c55bb680fea0598089a3a3e5cbc6c13cf113e00e317493b153267564716b0f9cfb7ffc98fdce4a3ba56424 +Mac = 62cc1fc3b61fef9c4e9089b86229bd43f651d7346baad2fb145cde64f3f56d92 + +Count = 82 +Klen = 125 +Tlen = 32 +Key = 7b4b528be9e0353c0156dc685bf0517ef4cc0ab18cb96a614c4889d6ac26383494a840abc1a8ebef6b90c6e825b4a4aa04e5e6a70342fa23a65222e9de50773d2dc62d110a5e187c87f46f6731efd18a38d28597d00e06b4d61bbf2fb7c6136d8ecda0248ca9c5ca9dab614e484ade05d7bc6fe7b9c395fb24cae810ff +Msg = 97f669cb219bec2d7a57a47979ef5a254d2cbafc26c9a91e3290d948cbbf9a55efb0f305f0b9f1fe6c523f108075f7bd394bb8f94b04f92e06069c83854bc65e2904ef27468335501b57f69208b99d79fb27bc222c4e5c440a2d916d7478518e2d3a85ba8abf612b6eb1f1867881f55f7b08ef002f6f7a66264cdd8d010de0ee +Mac = f8839b532c1ad2f0dd2671dd607253ac20c5bd6a515022451667cc636e20f837 + +Count = 83 +Klen = 125 +Tlen = 32 +Key = 3860b019c43dd5b6028348d2974e828b74e09248b5f21daac948a3bfd4880379514c425ffc768883efc46bb40ba470f49949cf2d31fe771fdbba529d75f5caf955bb8cbd2fff8c9b383149a78b1352c4ccc8095c0c2da755ed6d804007d089d38ad41799247fe9e825f36914e1432fe25585c73f0e29b4324789b41052 +Msg = 76baf79762efacb78442c86c8cf48fb50ba43db7282a52ba94c42e75c070dd8b4d983455c4f41de287ad2f3c07be82ed38a0c1c2422680cf7aa6d0b39059111e09040890f0d83263c997570bc7f9619d3f4e6f8e5b6426bd13ab47b45997872b94469bce50639241344a6760346dd7cb08f670a2dcaeeb8d491dbb0084f3e6bd +Mac = 694c01f7f952a909842fff93a565389aa687f3d91df092ed0eecfcc18f07b88a + +Count = 84 +Klen = 125 +Tlen = 32 +Key = 787ce775ce65a604fb8f55af0e5f1428be380812f6f1fd1391864f2b620d0a4477ec500a9e4afbfc29c384c3ef6024c393c638f109adeae455940e2e96b34aec44327a9cb698522fe786455f79a5a643fadd0e2167c8fd83ee66c48df812a28d67b42dd41c39f3c5bd40622bb516e5d07ce5504b18287e19e46238ef90 +Msg = 2b7a171a33714b709557af416f295d0cce0cf4c56634ead88704246c4c76c4e416be43ac382abf32f44d9632a75c333740d8285ff66d7d5e3b1b48c5eb937e85cae409ae2d561b7df796c196c714bb8e70aa8bacaa7eccf10729c55528193e54303392a979bd065a867c59f439199d1846ca4536e82e7e99d378c3a469cfab5b +Mac = 9387b868d66203470b5762cc10aa92b99168077a17497c0ecd244ec71ce72185 + +Count = 85 +Klen = 125 +Tlen = 32 +Key = 1fc4c858845af638e18bd3952eb74883ba4d216fd5a36317cd25e0da1db20832e043027f8ccefc06dc6abf390eb386394f7010997473f465eac13562f0f3169803dc2f0e9a6cc1d514d44747efeb4d913ad1856f4dd21837b78d3a19785501a571d7778d18fdeead701393483929469563b8a97ac98877971cd018861d +Msg = bc1463e3ccc4efa58f9d3f657e84b3d51357bd6981d43a5da2b602f93120bd14393ff9d7cd2c7ac3fa0fd1f5fa8a31a9aa557dfe3f25a5f934d333cb86ba21572461eeefa15af15e2d69ec2cc3e9e41da46c30fb03a2d195027c0108dd900e3d65c069b3b116fa7f10f3b79141697538e7e5fee93711633cf4f894379d6c2dcf +Mac = 2f77cf7f96eae7ebc838c9431522ebcac360b4406cdb3ef25d9cca93350bb671 + +Count = 86 +Klen = 125 +Tlen = 32 +Key = 5f1149eb978bbb35182ca938e77ad0cf414b00972435c4fe1147459c11f66cc7f65a4761e39baef50ea62602c5240597afacd72055370180e0d5a460249fc4c6deedaae93ac9864499a359e990461218340af710954b4725881b1e13aa349892a130392aa5fd8d49408b0b9351c73f7957cd290dec59e014907f7a5da8 +Msg = 5d9d92c853dbbdd5c20fd8a14bed15a25eb01604460b0d42666322f4c23b15e8c1f0247331a62f098b821a0c781a73e29529544a73888bf0e359f93f708538762c6a81feb0cdccfb5e163821e9bcaec818fec143c6d4d96e2e259187653a5d3f28737010d838ddd0c333fc87a5bc0f7e6f95259846d83fe5cf2db275aa40cc6a +Mac = d4b5684f15c6431b25c4f5a8689147ed904e3b2b5009f080e3bd3069aabade42 + +Count = 87 +Klen = 125 +Tlen = 32 +Key = 84a72b46b31ff2a3bfd295ca63dcce53634794327a2ca7f1931b693d3cbdefa457b8589d12d35dc91a5b2a780cc56c6f2d94ace95a7edbdb42ca2e7cd2fc2c05f1b405b56ed4251936e1098acbac51f7f13117e5abbf80b365599023735d4316ba63d997ad68711b7c2cd90787d8a57319e47e2e5338bd026691393906 +Msg = efd2510e18699c437982d63ecc061b3e9c5c0408f27e6d9531537c083f39dfe3e5e05479795f6fa7ba8198bffb6053c58436c4de356f72056c034b002902e892707113f3ef54867de10cf6a832e35038e4e643b5b1f3fe1cf2123bd4bf087ce3582a9462c3706a2eb7cafae1b9b79c0185138977af309b428a29546c4973223d +Mac = aca1080fdf13b259f71db18ab0a8add74059af9d50f7310b1ef0bb0cff76fb72 + +Count = 88 +Klen = 125 +Tlen = 32 +Key = 63ef2853fe6dfe1fede12081b2134522dfa0a52c859f0b0bf0852c75914637a73cbdadf2944e7377c3ca262f6e92ae2ee7001628a5029a34f20802d0e4212f258e60f48d778527534cd9f7bad15a7f401d189c2307dffc25dc16788c53e7a46ec2a1a42b915a413befd83c2ac5b2e1e0e8b2e026937e5966147736b2c5 +Msg = cfc04f6fd5c15870c1770633517926a0e08805233914df54a9029ad358adb476d82b7ba7ffd17c07f2f93d5883022f99bd99de72bc376bd3c3eb3cd9885af2f1d2049b3f46c929417eab24af5cd59ba69edd6006b2467519cb49c17534d40723e5d4190054b049648d15210285f9540fabdaf3a7c147e46ceaa291700424dd55 +Mac = fd71e14e6d8d13dc91807d290f3cfca47b8c7f8a23aa18238200f5dad7dbdb3f + +Count = 89 +Klen = 125 +Tlen = 32 +Key = 6bea67b37a53b090f6de495442793d6b641f67d5abf234db958baafaef8ea9243e8171285ede656e69660fe7dbb96344f32448665cba54160ca6d7f76dbf1cb8ba5deb8eac6b52e257bea6474ea5c4ae0ec29cdd9a18f11d62645a3369b18d92a727dccfad240055878e165ae667e7127fa16c22ae3492575f6f3a982e +Msg = 11c81f57e7c3fc99d60c16a6d9c8d1e9fae927fdb8ff3520ab51f9e56b2d5a29ad7c6847af99e690d76406f5979273079347942206e610e461288de4366bbea1554d9cb9357af35c95c221ff626f1a55dcd5b07bf52a1273f99892d37491abbe516342143f0c2ce6594ff12d0507cfbb1cbc02714c7443b3bbcb8f19ed462967 +Mac = 35c4eb549bbd8afc1b033ad66e4d02315a62fca1741a26e85e2533c5f5e816b8 + +Count = 90 +Klen = 125 +Tlen = 40 +Key = 04e866da69ea0939b02a4e9e29052fe6cfd7a5f87d65794a5e7856a7a6cb242f7f27919f46cdf0d2f8144788e753a367b201af3f731b85923ac6c454bb36e3ef43cec58af1898d8b2298b35a2d4d58685137d671eb8f9cfeecd2392d8bb0b6b437252924d0e6876b16feba9d62b9f3f494c142154c8764945de4dcbb7e +Msg = 2f77d8331b2b92c856c811889bab8edf75c6875c024da90bf6b2f3ffe2d4192eb774268286e8662c8913833c6794ee6eb43e8047b7c8626171c62a04dad846f56e229e93e8fc751f4eea905c2dce9b58265cc889a9cfb91b01daa08991e2a56b5d6a888fcccf874aac35821076c15d43d309a64960c877e1aed79eb78e58fc36 +Mac = bf29051be936e6a324f149da168236a5af7584ad0b8ab1e7c27ce03c02768885e27d065f26321667 + +Count = 91 +Klen = 125 +Tlen = 40 +Key = e5cf7ede640ece05e6e08e6435fa6e752adebbe515ade1005e3c2e6b6d69d811c8b0425f7bf97bb4bdb40713d028e31c2908c33ad1489e1d0b2e6c6b37ac2fb2f6ed30a28f2e8b7992cfedbebbaa9d3218a3b9046e80c344dafc5c9ab4164e38b8afd00d6854063bac59c8ccbc27a4a03fd626aab5ff565d12cb8360ab +Msg = 0c36ca43e7c113ed9fb71670b3ea73bfd6928c839f36db1a82d08ae0ff2c3dae199133a10aa38d1d3588ed115c4a437c137ce4307421ddd615c9863237fd5aa840dd05ff6c08bf66bfbcd9b43e3f95f45e7d3b21bdf2692e10caab495c474b616a646be675b850d0259c01e2c1901130a0dbb9dfe0722a2c5b1b20afd7d2bbe1 +Mac = 719dd79984d1a74bcea46ccbba7ae09fe246a47709d993d31555a20d57dbd5b1be9f8fe55473ddbf + +Count = 92 +Klen = 125 +Tlen = 40 +Key = 4b07b5387cfc8303b4bd4012fec0d8aa55a0c76aac1539de32247050d39367e102a0b5d9b6f3b33cb2d0e19e0a918637e354973a7af1da63682f4bcf2437bf11c948c78219add7d8c2eca8fbe141da14c54adee6f504136174f62f7443ace1242867b5dbae1337026d795bd18bb61c6683ec641525372c00dfe3e4e73a +Msg = 27d367524b267653030bda2babc4dfca0260685822e08377b69940c867d9c4b097cd995c52a2480281eb2a6a61437bae3433b03e37560a26d3ba6c94178a6a9466eaa21f6d234f5458001b0546783575fa8ca460d373db3cfef58dbfea15c2a1fcf22ba385efb2d0f112560341aa36a9bb35ebc8df801b419e104b52c7c1f55e +Mac = 29f20b053e817ced2a92c32da8cf9b281c4d3b209e086e1512513016321e7f8d60c6bb42cb86fe15 + +Count = 93 +Klen = 125 +Tlen = 40 +Key = 180df5d78fc1cbbafb80c955ac28df292ee51b5c1eb21c603d1ccad0c349449af63a1a63fa4dbd27eb063320290e0feaf37ca1e438546ad9a94dd2e013d81e80ec5d9c182cc8207e5e44b4e7f6468c07e5ce38796bea1d602c7b264f873bb76623ffe3beca3ade087bc3b570bad83cc82b6248e25f7a1f3dee2d2de4c6 +Msg = 1928e560892d145758e7b25af656d00819a5f596b255b9141f988ff2a2fbe3c21248653fd0aba48ffd13dec5eadb16aad0aa68bdc2989a78df92f3d5ccff501162a374b0a3c4a0c1f38c636385afb488134e3ef9d21afb9ba5bc04f09075a8e07001bbbaeac23076a21aeb3dad19d02b48582053ca240503d7df6b4ad7a412b8 +Mac = 2ec31bd36f54bcf875421e668e9f149b92190bdfaf75308a3d345f08043f087de8229e9f0abe25d8 + +Count = 94 +Klen = 125 +Tlen = 40 +Key = caa3f071e610a88a12645f8ae6a98961a3ef8640c491d3fed5b982bb8826e7c3062d95b483fe89e41529a4fdc6615feae87fbaf7a8ca7533e67583194469bc707d45d270f9a386269e9e1b1ae8910b2e3c20fac9797de835d1e4aa46d7689b3dd8f28feb6f87081a54c9ad2875c1f7f548db2e005f3294cc3d0ee08968 +Msg = eca53fd1eb5c3ea44227ad2d69af5a8e484d11f89cd81b1e9dbb05eade4aa36f745653205afe863f14c97d9893f2516e590336b6dda5008331b7e7c2e29d872720db2b671ee24aa8bc2952356480a57731a2e121570965aabf061100f1104c7b375d4c0fffaf92c78271b36ea3025e8f1a519ba1d1aa517b8ecf0b0ed34bfb52 +Mac = 14fb39fd8aeafa7c3f1367bc918e2595ca5c9a7e663334f38b774978cd3a2fef78cbc22480ff791e + +Count = 95 +Klen = 125 +Tlen = 40 +Key = ada011918a63fc7727e2b9c8d1499b24fd4664cf2e5f4fa61988545807f5a7d27c2d82fb166024a2b7fa1ab4e778bdb3737afc635a1a5bc7ea7d3c4b27a75d436c94a394558416b1db962ccac1984a40301e885b9ed1b53ff40a9b1cefa083a6c6fefcc50e78d98ddbdf797029524bb27a58901ec02c63f87c58f73228 +Msg = 3419a1928ce7edc8e3400c30998f09bdac6f63ff351eb23d362e8dc5927eac805d694ac9563dcd7fb2efa9591c0d827af9f39146f0424873aa8e3963d65734b1713baf0a44696b3eae595596a3bbab69f5ad5fead230c0448fdd57e9a3d40f26f7f69afc5d540f2b5de6d88f3881cbaf27039794e4d162d76b83b0fe02dd8709 +Mac = a4e125d37da73c03071878f8ba0fe6f852cd23208efca650d560baec8b718425ebc80270b5c9dda6 + +Count = 96 +Klen = 125 +Tlen = 40 +Key = 9cc58f0fe886a026073a8f75ffe12d1fb9cd5816abb1c2d6b4fbf4534763922fccc4e031432b85f32b2e8fdaa280b84bcdc2e71c7a9bfa49040ac3e977fb5060f51970d559e472e71903309b71db4d99be60ba99282b7f1883ceb84f7764dd65df6c47e470d7f06a9b5f7ba1b41b74705350d873fb8bd8a9f9ecda6d8f +Msg = f87e5d99ce24330020d94c49c5aec8296b22783724958bfb21ff6a48bce1e0ccbc7c7ee6d5423eb76f8a667ca987af1b9c7ba7fbe42854195d871a592abdde1afc4b6c0c908516467a459e9322e0570d0c5986ee5cd50ea2994f4d21b18d417b3d53efb407d605d3c973be3638a106284125dfb6938503be5dbeca4859394f19 +Mac = 2f41f4b3331273cecae809af52bee4afb56d89d9db9989cd6933b97aca92c092442c6aa426418421 + +Count = 97 +Klen = 125 +Tlen = 40 +Key = dce6add843eb2bf17fe66cdfe175dd68ef95e179accd2b021aa96a07fc6a2cf5e0fcfc325d28cef79a0b9e620fc753c79078e948876acfa581898e55ec18acd51ea6d0409a3e26208fdf0583a22bd052ed631adf48930dbdc70a0cd4840d97b49ecd6f2a8196fb116848eb6b210b1bb1103fba6777b2abf2f5162bae4c +Msg = 2c99f9d18ef7903dfbde905e761533d42ddf4496517e8c9124f68e925413746587ad483f372b6759c04633deb71009077e347384157f9e1f339f0e9c962b90e397e47061013bedab2313ea6424c7e662976f2e0c4f5f510675f1d511d785282c83c5d9ff952e087a4dcc1cba6544b42ca118dff4a7278f9011734bb8c1272589 +Mac = 057c5754ac6b3377b5eff6877cc4cb2bca774fba71e7029d148939ee822e1f0149d8389b54c969d6 + +Count = 98 +Klen = 125 +Tlen = 40 +Key = d736694dd886bdc5588a6201636fe137e2c8932f1230b4033530b9238863e39b74d7159908b7e329a727eb44fe706809395d044a77e5ee4a7b092dc5a40034311f92b6445bc2bbb6bdaff44896bc4b0552efbfc8f2976ffebc32f4ad308df4b63f2df457b8ee6ef303ea2416119cb3b493466bb16a8f5ea65f71b7e315 +Msg = fbbdd756a8b2408130425e0262caa7bf9c0384d49d84bc36948930967cf2ca89ac8fb0e5aa9abd6e418531b2d3f7a731f01148c126f53f311b896c2dda785d616b7a7ae2a6d67fc9482530214758480363fcb2fffebdfbbe2d2908e60fb7043e5e089d13436c70da6fa8c11667f7707c1f4e2855cbe4da25f2f26a8ac4b7a866 +Mac = 36f27970deb7fa57271d345a13f71708a9ef95dd9e149f9ed35ad7d4b95d3c6bd3c3b284b33bb440 + +Count = 99 +Klen = 125 +Tlen = 40 +Key = 05af3c25279cbe03a617aa6e16f3d2046edc82ec0c48ac66f9ab42a66feae4e29813bbaa994ba578cf08928858802ee9d661c0d56fc2513e195912a914eff83fb712a921700a9bfd070e7adf22b7cb490eb4d085bcc0ab3a0ad1c53e449271abeb14cd35b5c0e9bad4912c1b7b80f34b9f3f7aa5fb290083567a260c08 +Msg = 64d4ed1727833969d2d586f9f7288746661a35ee96575c2146af5a54636c233a2de289f09647bb78eac50b68b5cef4e3e2b05bc92069152b8abcaa0286845820ed495b666d116c382c78882eae03f20cf9b27bf5f7d401db1b1f363a4700a206ee30ece276885592e01685b3aa708aa9f4481edae341281a4301866570880ad4 +Mac = c3845a354bbd890438d78c1be026eab77862f3a6b251a48aea3adb1a91f42c1554f3f710c88a197c + +Count = 100 +Klen = 125 +Tlen = 40 +Key = 6ece2d8258c46d99d068990ad493b5209876bc351ddfda1705b8dab1a6d0e2e75ddf5ec124c43acc671054bd14c83158f267ef9033237af04c71033904cbae4dcbb18b4b4eeec8fc481c256e9b6aa7de9f9d91dbba5590a9319236e43d76a965624d9d6afcca7ff01b93f3649001817b48208b5fd9fe830b5b225bf879 +Msg = 1c72ecfb8439d9ae3ed4eff8fff3aea771692ec3852f11b90aacb6b87f33af5c25ce768a593a5b9b2132c1bc05f18a9420f2d02876fad6fc88583e7b266b7c9985668ab79150ddc7844f99b0b82501f4b9fb31909f5e0f249b877f53cfdfd66d63c2924bd583487b90b1dd9ec199f90d660cb9c3a763a4776abfe1082296a71e +Mac = 9f28bb5a7db53b7d2b3d4e9a5e50c42f68e5f05e1e3c7f8f6f6a9d1fe6093ab0eba1858c3090923e + +Count = 101 +Klen = 125 +Tlen = 40 +Key = fa90796c79d6a728b50d788e35b9345b109e5f8f9bd3821d44182fe6be693fe85fd45eb3c687ca1dc02d57376d7bb7809e05f85882574eb78241131e69720ccec848ee3999e720b62289c3781c15f0c115f24053131d92287a7908622f675385fe9731e4391e3359a2c8c4398baf67873c0c4068954ed6d7f569179a5a +Msg = 3744c090cad18c19a41b5fcc4d2091ab8920b70e224e80f5e7ccdd9df5d66551353ef7832618a11bddb6c00f4ad76934bc1b0854a7ba4780a67632a7bcce9868df75b425b7020c59a3e99a2bfdaa2a439f4803dca5fdc91a752ca29efd9798593cd23f9d04f8977afe9c3347ee029b7f388ff0cfa47fce6c5ed676aa41992dcb +Mac = 7fc9f8e88cfb59f850bcaf25345aaaa669997f1f2dcc13e6864a44e67b9978e05a0fe33128c51a9a + +Count = 102 +Klen = 125 +Tlen = 40 +Key = df0251af61d9f87520a8a464bbe6004c4c9026afe3cbb58134cb242c8cf356d70a3e6ee80bdde4c7e622d9e5da9ca7fe4484bd9b1557aada84c5777100ca3af1691be8487fc36b8a9b0ef4f19da6932225fc05b106e9cde8f79686c48c997741656068d7a6d3b445a635a08dec4beb4057c1a6fb9cc94632f605f82c18 +Msg = 48b9c72f2fb4032f503134e7899fdb60126c7ba4181e5876a8a07f40cfd9064d00839538b53b26a559d4082e66f12aa1cbd39668906f3c48bcc4f14f776bb7076c703ff07160ac2d6aa39a7e6a0c5f6e1caf90ce62f3c8613be8a4d9eada12025526cc3eab4c1f314946f1bddf180231cea972bdd5d1842aedb3a1c7714da0a7 +Mac = 3d5cdd58801ed86d5c97930b7388b22d1f49619026049461c01db6e73a3cfc14f8ed25049c21eae0 + +Count = 103 +Klen = 125 +Tlen = 40 +Key = bf229362c49dc718e7a7933a33ec8174b224fcda3b96c0888cda8e8599e424ee233e6c508b95f455e9779ea3595b990195e28fbbc95c2048a28e902ba8b3bc17cfc0535648ec426c9d7070f7fd8bacd9d5cae499a0869707ffae8c1f0cc7c530eb30af3ea3ab9ba42c1971fdca85a3459964613c681b0c0bcac2ec2a6b +Msg = 04e38071f35b901bab55743063832c8339d5f52d6de21a1bcd890dc970d8b64ca72c0b96319ae1f6ae8e01de56b27fe9eb12471cec7df96d0c2ef781e3acbcbae2ee6f718cc3b780e371d204219ce161a96a86863de5b17271a1b7f6609ea5bd9d6fd38b6d9cbcc233460c2a2b09fbf15b27daf1c7e2eb32e52976b05077195e +Mac = 710481e7e1b77226cba0a0ce4630ce7fe637a615cda814ced3a30c0b02e3940ac024b56fd16f7043 + +Count = 104 +Klen = 125 +Tlen = 40 +Key = 557c91298dcfed52937609089637a8cca82c853f71b0a22b207fddc7a718c4372866aa53aaa0fba9116eccc54d4db6b0d134e5b647786c6c82eddbf2b44e1476e1de5af99350ab56d0e4508049d4b20bd4ee6fee1c82ad87977eafdfb9d8a630682cc9a4afa7a760b623bcc1f29343e599a24c6e59970e82497c7e1620 +Msg = fb0e03450c407afdd45d07e5ab697336387d3d039562df6bae5f5313ea4ed6d40ef5ecb05e94a40b05bb1d17b65e4991942bf1ab4f1bf9499048e66f98fe9dfa24146d8f937d50d24a1a6ed858d2e3de56e5c23b917d5a936c87b84effc06d48041391caf42207ba6d23030ed7edca864752b99ba3b089b308c3d19668bdcc25 +Mac = 31e3eb1cdf76f10b80fb7ed8e614534ac15f6ca3624d1640f50bc8206429c5ffd944a1875cce4601 + +Count = 105 +Klen = 125 +Tlen = 48 +Key = a6198953522d47667302628cdc705e0959618cb7e636de921f66f97af8688c35aed4e0b4fec5b19794813df3c65c9a5282d94cfb85131774ce5b12465323fd00f21bd47eaa99a46b0b3e9e05ebd76a205b81be6eda112efdc8b246011dd0d6d45a358d3bc072c9ebc081ae4cb4a8767ccca007974bf7cb36f3b3bc35bd +Msg = 2909532550db4940485ad5c1905a88c7608480cae0b038219796a4c726a67e5e3634db74afd801062a157c42aa386f91868329d5aa8bf8ef00df428528ead1026f1b6fdeff43b31f533e1a20eed559914de3f2bf1ab70615a2ba6ae38951fd5fbc0538eaa8e20694aa1cd6e1c6f9efce9bea040f96fb099b676e456ab1a3a77d +Mac = 9b31714df38d74da1d31c20101823a7a51129595e96885fe4a3cfb31d5e32c632b2f0e8318c23392c4e1f83f180aa9f0 + +Count = 106 +Klen = 125 +Tlen = 48 +Key = 91f9e69e2bd3a0dc7240d509c7ec14c85427f79ca030574d60b4bc8d919217dbc3e1b4a8b8346ab82d1c15ccf8ef467e53c8386c78cf06986ebb1c0f2295ebc9b9bee2d1253399a5f6104fe073539616eae34d0044d1cfd9dcdd6a07923c13fe1b9857629b59956b75236b8e619f6e5ac07f1ea02dbc19d655228ebd08 +Msg = 8e9b8a2af5bf4d8efd51e33223e35e69c3729c2d3cf6845950388c19c9e47e9e62df7d16e4da43db9028aceabdcc7898c2d74c8016f1fbc0b6350465c7425c237d8e6d4a3bfe5ef5fcb49584f1297a4d6b7b7e8ffc085da7d93b9f8783a66563a75162ad42522844089ea5e9071fedf288073a423663307882f36667453923c7 +Mac = b771f39b76ea764e7e3b488cff14ea8e337cdb173be0d8600d2f565fb04cee85011a26b5b9224b30162dc3ba48c9b121 + +Count = 107 +Klen = 125 +Tlen = 48 +Key = 71c60834c9ef3ad38c0422e43a94e390a92e9f02a8763a1ae3776066073bc94e2699bb8e5c4fd1eab351fc1c4460c7129fdddf566de0d2ce548517a51b864f890f0fca17a5cd4d93604912ddf57411a0ae827ecd0cfc9348b0118fe17b2eff85f5ce3cb5eb9235385d946e0d97f949a49dc5854eccf304f1bfc6d10070 +Msg = e9a877d87ab357733cf63620940fc61cdcc24de1b5f99f4b9f094afac73710f71f7b9a9ab4846aab3dfb12c7ef0ca305992369daecf3d53a1abdbb00a4cfbe906c4b08bb12293ee37d7fb25fb800db2000c303951b4740cdebb3a5dc4262b97ff89e28033bacb962270a80b096f455b53a2c85dce9fbc74c377371544af8eb0c +Mac = dd608e1c1464bd8bbd42c9ed528ef3a8036f66b38892da4d4aec611233eb4af89f7b2d9fed2e9aaf177175d674dbd516 + +Count = 108 +Klen = 125 +Tlen = 48 +Key = 3ea973e74567002dea56ded27e4f1214581ecabe28864b4d88862b50d4dbc0153cc6d881170faa407a4a0d1f0a59e8b50e32ea49c9e37bf006d3f2f6f44a087f34338c6e31215986b09186cfa86fdc3c53db8d8a852c226b3d35b6e479c862f44f79f8763aa4f448b2b2afadff97d6f04e9f1b4b056b2a065436dfe30c +Msg = 2308e98a09d74271c2a336c572d424be7c0eaad198fa5d8d274abdc3c4f768e91ccd8dc0ff2aa435b7035c859827d5a5d8c810e1a137a4c365efb23672d51aebc6beeffc243229d067709a3e17b124f53ab1281b6c6c4134322533468cad1e3ac9e2f8869f7639097bf2d83616fa777549d2dbc622219ea837f528393a08db9e +Mac = 91cbfa1b604f0c2e6b85ed3a4838f7df6fe50353c94251cec2feffbf84ecf98deed44bd62c5406e86297dff5b7fc94fd + +Count = 109 +Klen = 125 +Tlen = 48 +Key = f234a0b1af97eac1f791c02c2dcdb786a223d50ead60458cfe454f802fd288789cc446c2755c57431162f3a7856aeebb765632162b1c6dffe6c9078b75c65706045a169435711418739c295583586f545b93ae05386c1828eb3b376e73d123dcd101f871185f8708c4474c804c21a119fbe43021fbd9aed1b3a2c77253 +Msg = c48597527e4d997da811cca724f74fc12a2738dc9ad28549907356ff3954593ee65485725fe90b5a7a618969ec6d816d5edf0b6ec4b3c6d9ea4c14de4f01871637d89669fc91952fa5e7e495b91266425690343b7d259304b0212409bfe15b3cdf9832fefc501f43502b43f135efe48a37c11d0b6e31d4140b77ed4830fcbdf7 +Mac = f459c728cf1350639d2778ca5dbe68e3a5916588cc55a8739b461ed508bb358005bede01adb15875f03761d07484c4bc + +Count = 110 +Klen = 125 +Tlen = 48 +Key = bedd2d63c53fe1ff0874896cce3357257ddd72c218f99c1006e0136715b9b438bea866e6ab43b6d77646bfcab4874d6b322c42247e1b3837a9b2670a4cb9c9c1c9947d12d3bd6a55317224dbbeab1381b54fd2852ba7d598dd134f342cfc522f66093891479643a3c0628048f687f1908eb0ea8b2886bc5b296b918dbe +Msg = 40b107b77ddc1cfa73fafdda84f4c895451c5138df05af12b697fb684862546a573326664ae5ac3cd17ab412c86ba3485e3bb8ae765295f54d09fb645d02d5cc82ba78be5c6129fbf4e9df2ca25d4bd42e74168235666a4bcefeb3776ef0a77b096e84287af69821256e0792db72c91ffeedf21be5e636fb819dac0a41d7d25e +Mac = 4fc42aab05538f132034dea79ada4b8c3764211d85191e3bab99a04c776fb25c940889a1906ff9309bc8ad998e5d80a0 + +Count = 111 +Klen = 125 +Tlen = 48 +Key = beccc5dd3e0ff0bdb69caca5ed6b1df74a9cf766441593b91a6d42cbc409e1d72984adf2925459d95fab5eedf99c937c077ffd42e596e83051f1366c688ef898d2c53b5739e3240dff1640e73089151cb5cffd72cb853403b4332f41ac742f381f57171319047ae2fea3f99a7b79cc5dbc549efce02a9ebbaafdd35479 +Msg = 5a7079ab9de0bf5c46f49aca4079f05246d0f275a5a0fd2b43c8be79e0989a459c404d6ab988d108a3c2811d2dfd7e5a1e7c522fec67d329c7bf4a7dd997d5e5cd820aaa8e48dd0251ddc49dd593197be98ebf003078084a2177d6c2515c01f1f51ef996a286adf5582bab71bfa1885db0ee8210f73d643758d7aa70d04ee614 +Mac = 56323521c9acbcef43b446cdc709701ad07c2f655e630cd4de7033096fb58c47842e07c78f460b13a8bb690f9579e141 + +Count = 112 +Klen = 125 +Tlen = 48 +Key = 78eeef30512f01b5cddbe1ac68c81c3849d81af52c1fae39a048ec9a72343bb069e5ab1c339b88c8a03c2f710ef92063252f5584c48bd2943a727eb3baa03124090f0e507a1a130e1ce2ee2132f11202e31d0be133af0ee632c5d5bc73f5aa50c033c1d60cf5ca0ea995c7c5bcf61b9eed6ae41263d38bb6ef099abc87 +Msg = 655fec47e10300503adefa0091e11a664c2819270c22bdc3dff3ac19b8167e2e1c47152a1da031a38c023f1e6bb672d3a15415b1f1e420a22d440910a7cadca8e9298e5ea6998fb1f0329e30aa99e13d41df351197a6c3004086d4fef1afe66335cffeeb62364101cc38be3d38d28f2b9491204ee5b0ce648080b4ec7d0dc1e6 +Mac = c683976dd4aa6e5a359e3f6359ff2bd9d44a54fd005e0b90d02b547b3aed369793aed0465cc8ebcdcc36175ec6c28fda + +Count = 113 +Klen = 125 +Tlen = 48 +Key = 1977183650572f0cbb8d65228d141b67cf5f4212a692c47dd5f21f37829a53553d71ff083e58c775eea8f8c0aadb6f6ac389b7dec997714609abf9a354e2461d02c61297377a3b8765386a0512fef222dc83fb7aba70df0d84cdd44ab6b9cc6d715f990bc22555eb272601184fe36c342235560f0187d6794f41f95430 +Msg = 99d4482daecfeeb8d44226a39f85b42f9513fdc2d798c698044c3eb55a803f1e1e76d1483e76f0d1361e8f6e30fadc256f55c6bced4ebc71432eb8ebcaf87d7100421d5a2d44bdc4462f9c8911c0526f8a14569f86bec35996175ce52ed5cdcd06df3449c160dffbcd1a57dc8afe9e77aef9b655e81062b8c3af318cce3eb79a +Mac = 20055e634496d6386db2dd25f2f24f3336c9f3ea8a28c4226ff8b34e91d854a0886a0584c858665859a54534e1b1281b + +Count = 114 +Klen = 125 +Tlen = 48 +Key = da02e70f3f27b04720271048f65d81fb12aceee8eb7baf59b7fdbbbc38b6194ad93b98e6f939c04887b8085acfa14ae2937e73625e827f3c15c9a51acfe0ce8de6884cf54fb7c9a026e07d368d74a554b7a93077407abb1cc0efbf259f9e097f2b726b02e7abb2982626d7a2d9df7a97a6b48bee3a6c4b3fdff773a551 +Msg = 3b0d45434969e3931fd801367b32e7e680206cb1582eb9a71f214fd6fc8a4c78919be96a963a48e0c0546d58e8748acc69947f2cca33a10b9da7ba99a6b552d1405f2df3fdfd15358d8fdab5e15296b38f9135fd79be35aaaac1ab0b809087df100018c6c6dbd3f94c325037adf49503bbc0970caef8feed0d172916d244720a +Mac = 48dcaea229724fdc6a01a19b9742c1ed7fd57a86ecc2164c9f808f62a0c8cd6da6c57990db306499cabcf344156f4a12 + +Count = 115 +Klen = 125 +Tlen = 48 +Key = 939cfaa5c4b2f535c8c796f4e98726116cb9a3a5cf711d8e4e87607aac47d3422f6aa07aed46154646414b6eb28b05b5bd0dda674f9c97323173df36cde0145f353d7bf367229a67d0d9e5770e129a76fad8eae2e6c4593b23716715c72f706dacfcd139bcb04c426c77ae368784aef92d04193d1b512c522d69413f20 +Msg = 51f9ab865146187fe650e49d45421fff28c45c3bd8c465458b762d93f199067e0afd14ec3a42022c9fe2f321a272bca3cc245022dc917b8c16b5d471dd3bed6684fbcca762c29f002451abed67a8860087848683b126795f4056963c46a8b4ea68febafff04e57c21da5f348bd6ce5ddfeebe6a6820bc584b1605d3a5366c5d3 +Mac = ee3629c6388cf97e6f6f36cd0eddfada5a44c4417b02e68bd46318eee178495aa18bc701f940e29d9198510d494e3636 + +Count = 116 +Klen = 125 +Tlen = 48 +Key = d7d1e2a4b1015678e0acef1fd748da61498b86413e2d58de67efa19baedccd7e12cfddd6b23517212714fb2c174d7a7c071e63ed71ea1e99173d9cfb960b8e553e38d54e215d3ae06aca6071f1c7f6400c203103a7e07acf975c64372b73e0b80415b4552702297e51d404368b40b875fd99dacb0795d5478e54df9794 +Msg = 9561d6d7e4018c397d3ffca92595481626fd14e65ab439de853eb942e7aaf83d12172982fa7706344b93c404ff5046992f309134291b8094c460b817f0f7df23910909c48eb17396240574e68150b0148ea28f3b0c8bee14e2231418b54de7e5ba3d5fe3c8383c27b29bf498d31ff050ea5bf745298beb28888fb38d5f37784d +Mac = 93934bc65a3163ead3180028e8104fc305f2ae407a27b14975fa79f0aec260e963736d9aa1d0069db5fff91f87e77512 + +Count = 117 +Klen = 125 +Tlen = 48 +Key = 95bd8ac4e11edcb1b21ebcac3197b0f72388ca2561b7c4dc889b50daf178a936e4cc6ee808eab08c1ee54a63efaf709b83828bd0947f44d24296dfa909a5cbd6efe477dc028067ff0186864c5a03bed9546ac64e8e353ba4a8cff32d40b28ed520cc4da7b5282893c4ca1a6e58dbc03aff0622a83521d1db2110326f7f +Msg = 4f83fa4a7033fc574fbf1cebf8d4e4b9606807f6f6f996be7c1677b3152114e79f5350fc4200bf89491d16c031ffe04e00657383d9b923b3cc93b5dcf27f1788ba004ef57ed5af745a7a520f3df2c46e40c4fcfc37449045861329a237e935194992db7f4a3734df28dfb8204435f6e1c88c89a83b20473c529fbb4f09e8d660 +Mac = 2e13e091d6062a8855b6372ce7e16ecacf91e4535c4f590824e95575a85154d333c96574402f9a30935bf30edc61c030 + +Count = 118 +Klen = 125 +Tlen = 48 +Key = 8c679291067ff88fb4b7c9f2470fd1e6863ebfef380228da44b4cef4171f21794692064f7434d8f47798acb6b691da22d548b9be958ba9fbf56857659efb3c1d7d846789b2bc7d4aa96afe6e8631c9e7c7ace33c24bd747fba21127f6948423e7b643ca686c1ef77935445847f96a81fa293c5d2af3d9050db0788aa42 +Msg = 1763082e69de7e54a36f4ca6ba48ad036061845527129dc4e8e1362a6699bec72f9cdc37c379b3a0f8c165309d17d5c75e87b2f0e719b1164da519f5a9e8854e06d8e5df7d35c7929e61d5f512719eea7f8499a0ac5366c1e60a58eda257316863c02c0fde3941915cf6a4db617e8fd48b01414bbceb472d7cb9fafc980b497c +Mac = 6327d024f6ffea558be652633d527bd9b023968032053a3a2ce183affae4721bfd81b965bf247b38498b1209e2955ec3 + +Count = 119 +Klen = 125 +Tlen = 48 +Key = be7b98eeda81b741128103c2a5cd5180ae213e384c37708400971f4f56add48cc81d7127df5b723c9b7672881534f11d63645459bc702d18dc32bd29aa08b8ff192b47a94c3c5305fd2001301f0e7940c2e6ec3638c5d52e76d67fd9bc6bc72d794c235b694ee3020028b7a20b83725395500db7075eef2d942c6b47d4 +Msg = 82af0ac2ed6449298b517034353c3687889b4de0ddb5f3597b05c4e70cdfd2274e56f75a0b5c6aad4b2b91bfc8e4165da2763d9054c275d9e7fd2dbb6655e87a91d79423d59017cc7cf22c1d227a6d0f6890b0f4ecaf97b878c5636679dd09edb3fb88253447790d866ee8572946622640b14f168bc3837d95270ff02fbe5d09 +Mac = 156277ce3ddaf28e60541fa2c95f58e045bc5d68d630d5fb94188de015491dd6bea7bfffa185cef131b6ae514e7b2422 + +Count = 120 +Klen = 125 +Tlen = 56 +Key = 480be758a9b7ba9af001bf21db00c451cfd66f06c9d8d5d698ef47974a3d6f21e4049d5556c45b5fada447378b13226ed4af2427ab6692649ddb93831b0b40082e30fa9c66e60056148c403ab8ed6effbd1f541664ac69e7fff0a45e5fc292a68f57a734c362d2088b80532f4cd4d18df1eea7d9def280e925f62330fd +Msg = b10af503590665c12e96c3be38b6ecedef0bbc4da1be8b63138bf7e76b15e4be4d7dc22845320f3b650b1c902f93133cb5a43901fe3771c6ac7a0245dc2399044e049286c6e073c2b17eb9d40cfbd8f382647da3d485162b7efb944a98916f26fac9eb85a3b89b3f5c1723f4989841fa9f760f99eb50827bd237375e66066f0c +Mac = 6a2930bca4229aa1f1ea1d5a26d02d3c350550f2e0817f52671dc8638dde0fed40de2cfa5483de8ce941d94e3501f6ca92131abc64724422 + +Count = 121 +Klen = 125 +Tlen = 56 +Key = 2d0cb6d45a952e7696ba75babac052a0d44c5fa77a6d01ed5edc9d97238309736f3d41dc42dd5cdf8671be9ce7c88eeee4316b4e26865af4116903409ace1e5958ba2814dd495a1746f6db3e1117353d2fa706875a48f86fa988f28d626490640f0bd141d4e41066ffd13668e1b62dd6dd35981bbebcc1a64dc2d24824 +Msg = 7415f6373b8a794877c639f009b3c49197f388f98bd3f0ee5f7ad00a196703ca111a53e1fa1098d220f524bdef165f79b515afe4a9e09b772be32f1e4d7da24693b13637f71f60a430322980349ad414fcfdc14f87e9915d210e8b7be5aa3e09814468e0399d17e72fe40ee1e1296a89f31486e12fd71bc7ca61acc9e8d4213a +Mac = 76912ff0f180d62a86a2bbf8e1f8d4438ed5ded0cfd3bbbb430384a60f18d9e9cdeb7e49ec43a61367686b34633601a5aedf8e3d669be282 + +Count = 122 +Klen = 125 +Tlen = 56 +Key = 6e1d5f581eee884d330e4cd26b51007f4e3009b0111ce581bb126bf6867053798807f88a92715db259a46eb8d3c88918e4463db13a2252be768a09078cafa4596cd32933e2a364c2bac82b0f29b9e67868d34e5da2ab741b10a3053e63bbcdf262aa7bbbd42ea466a0a00a4033cb1d8522fec21b10605480d384e802d2 +Msg = 0b8cdd9bc2dec68748a799c1c10a4199070ef57ba7975d7f2d95f63ba27bb7dc52f3f575d3cf849642431f21d05209597d87f53c24e52413b820cd47cd0ec1765a584fc6bd756579ffd9f9c25a69a7d7f8339c48fe5cb28fc959dce87762c563aa24b43788b7b35907cff04d6736633d007ab1483de3511ce9a7edc7a9610bca +Mac = 293fabbcfdb855289377f512efbc370152cb87197d12f661b6cae18b8d242cbc767a6f663377085525f0f27b390057dfb99b57b73f52aa2d + +Count = 123 +Klen = 125 +Tlen = 56 +Key = 030d2ff93bffc8241b850829f5720812c4ada593783279328d590aaae25b4092c9121d3a5a00a8d60e932ade89a79db4b64d628819cb327961e457fc3d591c8271af8255293334c38d3cbd7f95b0f9441fc9c9bb3f190b9fd6ccca1f662eb184246dc6134f9f5535c10629d5c493020a26aa44f69025edee139bc9da04 +Msg = 942405a1436a808dade61cc4207fb8ff8846af793dfb4f981fd38dd0e578f6c5b252e9afe9050403433bdc501fa3f166193ae1beddc9db163eae575c82e004cd002e025eeec7525b74ff8b4e0450ce22ee9ffb882fc1259a8a3e44bedb552acea740b976f7b952dd67bc90877a8f377a3000679fdbee166c2e0abdc097df500e +Mac = 86abebfc1cc5ebda3fef0a08ae515176378e189b577b51b8d3cbf6181bc1cd070a086d881ebf31ed79da1f034e5decd30a9b69256cf5ad34 + +Count = 124 +Klen = 125 +Tlen = 56 +Key = c169eca1b31e6d7f3c59747c486ae4865ec824f5c8a967bef5cf31e91ba51745208ac65abb6d469fd79a80ed38d3fe3460a3f36db4ef7bcfdbce2346679bac21b7480c0a1bf4b63c3ac01bf0b1df7118fdedb3509b82e9126d06a92960c7de684c48c89b1cdd44be2e744e6dfdb6c49cfd4f6c88c68939ed7520ca7a4f +Msg = 4fc3b9d3c4a2a4b95c41d441b88e126304cf134ad02ff2fa1b76dd36b1180ea1b871fc23854fd38eb4b1228277ced48e2e5962973804477e0943b3fd7d5283d26c7971207f8f881242bddcc17a847758b80196762e7016d3c2f0292761854d4796637f915b6aab8b2fed68c768b7e20acb5017ac5a7c47426d05a57b04ba5348 +Mac = ef19689ca901092506af1eb87b16c24c898ae68ecdd2577ed6fdbae5b0e2f93e9f0c1a839df6e509bca954bd881ec03edce3186a9e529490 + +Count = 125 +Klen = 125 +Tlen = 56 +Key = 9d10d596d5845f84a6805feb81fef632c044617a930c86dc3de1ccf180cc3098553096f3e1f35cb3a5de3596f547352dabed28e31c23283b4b316f595df769c44dd30d6ae1c56ee5ddd18dfc76a5726d097c7bea0d42f36147f9e6803c5b3479ecc1e502bd43bca0b6210f26ed62d67843ba01954eb10fd59702dc6f06 +Msg = 1fd2428a58b14ac4f539d7eb55dce51ee7def6e4ec0afc787fa47864d39ee451bd0e4f1e72e0472f91c8fb08647ba11a631f16dcf900c41e8b84c99bb76156cdd90d5405d4774eba0ff48b21bd7c7aff621654bc9291fcb8fc752ae2a839c8867db69c6606dc280d76a4ce60e9453876ecabf7a940256aeddb5ee261308e0324 +Mac = 55a1be4a6c9374fba4d41ca5b23f436c82c041cfe3fce242f404444844dbda9c49b2b4e52ebccbe0c95cb6f04a1e4fca51b26b09e05f774c + +Count = 126 +Klen = 125 +Tlen = 56 +Key = a1b77e7d35e194c8f30d1f3b9d4510d5c71fbc688c9a309d7f4ac438e4b5f39d21fc69936fbe5e49d539239757b2fa856b172b11ace4542dd2430108e2777c8ea27ae73250e587eb9311637cb27c0ef9046ec187a8dcac63758c8e26347a84470d7b1ee14020b8b616dd0875166af3387b6aa551e64be046516d941a44 +Msg = 6210041f1da920551a12029bc4dd81bbcdc5fee0c3f09afce571a66734115cc9cd4fcc3975a518a6760de476aac4096ed54e89d237bac8cd6227f9124a87d6c49ba394944f6016297f4061c4792b5024147088a74007afb3e119d954dec1432674154476d16080a4deb25fcb5c9bbea43233e4a8055db7750a4d2f7318480cb7 +Mac = 232df75b5b6d63a2f4c32b739bb13a5d456684de17ee1f78d351feef5d082d2efab21d6143c405c0f015808675ccecb2c398e93874c7a15f + +Count = 127 +Klen = 125 +Tlen = 56 +Key = 8966e3236aec1581b61c8e3960e90380d8d48572df6bf8b19b10c64fe6fcd5eeec84b625f59a1f267f969b9e903780dd4ae42137c03846aa08bed9c192f9e2b7b7a8b6e095476a451bd98e8e60e5182639bf9f990a08ca41dc780721b0db8011135a4b1cf3fce026b16dd1d177fdb5a2cceb656066e46cbd3fc7b839eb +Msg = f5722154ecc1d97bc585dbca18091604ed4474f922af5ffc0d5384966126d67c5697d6bf0468124310bcec728b719d3117af7a134cc175cd5a24e6ebefde8cc15b11cea3f2d04759b13182cd25a402078983865b2fea8be121c811260736a2214b0891697ca280a5f00e2443ae4b4d6d8ae7203892d0a71fa9678db172d62286 +Mac = e4e76d5f58ed574c96c42b565d53e6676d2c3075217f4c1a0afa79c3b55009617e73496c1af9db02a70ecf08b2c95dcf1be5d94b7760637b + +Count = 128 +Klen = 125 +Tlen = 56 +Key = 6bfadbffeb0d23e34c0243c51a7e5a1e7672a7fdc6fae407ab85d5bc343720fc518b5fc98a3d744ef0671c2054eac8c5b80fa873036e0819f90fdfa469d0a57ba806664b3f67150ae1282236a0624e5e60babfe48b414f0106992a09645a98f15ab3170e7355ad1f058c7c8e64af97f355bb14dac63b63c6bc6bde768c +Msg = afa6ac462474f97c6f12e3b4260ed08c04837f95e23d9c9fe21d9138eebfa06f615b2ede03e962e73b89ef3d80212ea611487000e6639282e60dd2455abde003a2a2391e26d2b0e490a44d11395a5b95e004bd98a2a181bc2686b8a2190484afda45721076770afbd62ca53837017fe1db7e0d66fe3e91d30c50eb5611dcb2fc +Mac = 599d768f42ed0c6a81898955e38f34e17b0619891278f4d8e05ff4ee49ea30b063d6e40f44247d36de11a2f346a16395a218e94c7b04510f + +Count = 129 +Klen = 125 +Tlen = 56 +Key = 9703e403d09f821808d19eee46151209d02cf23feecb6c12f190f23d74399c8de218c7f238c203d60c082cadcf28d6ce4f44ee817f129f597bd673c4c78dbbe0d76b3090d588dad09ed731450e5783187d8d950589318daf16280f3794b2a70c81e567052e5ad1adc526f7de8b0be09163f02ef4948ffebdcb6e10be64 +Msg = a3acb88dd0b141652e248025ba606fad61ec8d52b75a30dfeb6e1dd9fb835608242b33329d16b42a8435160a191ea4bc2ab3d0bfcefe82275660b0e681eb2f4bef0cc9c8d86d8ff8fe1970e0e0e20b763100c25f88fa10fd59ca1ca9243c8e3dec97a1d6eb7f79d8841ab83279724ce35e1a8abd4e158168dcf388ab4c3d1ae7 +Mac = 7100161e04dc2a98b6ac04b2fdcd16e6b64774e020c2a94b7bf0714b1e88b7c6fa55b6d1a25d3eca9ba04ccb5a8fc7e0407d01d98c4bbd3e + +Count = 130 +Klen = 125 +Tlen = 56 +Key = bec9d2afddf5f48ead7cb48d31ac370ed58981cfed6e8eb55ef79ec89b1dd07ed4a3f23c6ab2981aa5c06be7a9b6c46da6517af550c8f80e8fb0928b771d19cb7a0bac3ddcfcd22268e2c695623e12c9bc8a5f938cd58c28beadfd27064136da19c7a8b91d1cca2f5eaa6ca1428f49ad7ffcdbaf8bda738a55b488a532 +Msg = 6a15163bc2f7e899660edd4dd56819faeff7173bb64293f1555ba7dc62113469606683cb88442c4dc96b37e70dae820fbe5f62d188088d22615b3872c76c7c80491efe7249dbcf25008991c2c3b9dc928421e0139b4c4b4bc7906d5c6f4199592e24cf588f2699c8154e33057ff1ee2a4925d627767793138de18dc3e2f6549b +Mac = 091f47da39c7040d6d76064ee8017ea5e9a85ee82e5632e66901304d515ddf5cc4371c3cd3068e3b8a8a6ca5127f376b5d902c0fda382e3f + +Count = 131 +Klen = 125 +Tlen = 56 +Key = 44c3dfb2f9507384167f9844865eae22cb36713d95c9280a93d81efa89e85657a3467b6f094916f5b3d704a47f2a262580d45a339901aafd4bfdc4ccccf6aae55902abb1cc64921b710b1d3a165bb13061304b526720ba8979010cf741ab46de0fff58be6d294fbef921cd4d7478b60916512de024aebf75c5edddc512 +Msg = 0487cc84f63e3fa27576b32e5781c5a23c4a3fef65df8e1dca2c773166090553d678c6302227379edb3d7c7e665354e797bf4d818219342e8df8d0f0cafdd0078413015918f4c41706f0c09e48ead49be3a34f73bb3b64e2abf4d8e2d53afece37e0e5c780add0572117e654a64e2b07477caf8eba4b067f4ca9f7ce30c878f1 +Mac = 5c248c052efc46ab0baaa9af71df991103b7b83773bf7129d29121655c28d90ee5fda29c90ffb6ca6c5a072e95cef8ec2b706a9fbe4d2f7e + +Count = 132 +Klen = 125 +Tlen = 56 +Key = b4351406709d4572693c0a7992499023232a732a3e8983aed2aac82ac0fcc4a73ceef7307603a9857a29e3145547bf247a15e154643046447c6e3d923c6eb2089574b2138e742c772f6df5429df90ffe86212b2bbf756ced2c5d6e01e1aa87f586704d99001858b14eb149ecb0870a1a0ff7589999817f10ac1f6560f5 +Msg = e109e67f994e1442aa4dc46bc18cb6cc3a8eae289b4a194661dcf443007bea2c25abbccd3eb3e6c33c5280d997ae6291938d8b00c3c7c4dfcbfc80e06982073eb7a1d398aa033affdf664e4e979402b900958ea9b62314c8895e835781c1bcc81f55f389e624581e1af1f772c826dd6f060e7dcc7c445226236cc5534d2050f3 +Mac = 4a5e35d85e06a57fe6b6f90a4ec3b90d9c4d8896648f0496c5c453cd1a2c25c4f627c688f3f2bcaf88d7e7b33792b40c4a4aa6737b423e1d + +Count = 133 +Klen = 125 +Tlen = 56 +Key = 67f57e3643ef20e5bd2cadb13f38102c1de95c6e289d036f80c34ab4a99df92ee143575fb1ec55bec3690a5df3f25fc9a8250c31654cc3cb9bdfaa74c24a0f97a7ef584f086f38d05e252903faf41670534357619f45e344a07ec152c183c06e610168506f0030e23769f2ea7bc69beac64a2744fd11cda237a87695ce +Msg = 7f87d81389a6062e8ed501ea964c2fe35b2d3de9fd676c04f7da2bb552bdeb7f183d2fa60c67e2379848ee4807530a81f403d3dc02c11fa8ce078ed422c6626a6c05905a6ecb1679364090c9510f06fb3c0e09321b21fe0aad5cb9d980674e35612723b6179a4afc51030ef4dc48cc5819980575af50b0317d20d54cd36a57e6 +Mac = dcaffd5f88c2ce438bde469813643f87e841e94ecb283270564ae0b07db0b8c006426bfa7ba91fdabd5ef9b1b8b9cdbf860ab0ba459e2c9c + +Count = 134 +Klen = 125 +Tlen = 56 +Key = 31671f1a2f8f8495038b707aa10a2216f0ee457e8600cfdcb3e22a08c24692587b5ebeb8ed93c2fd6a7a3476d2048dc415f5d3ecf39775ab06af770a03b0ce313d2f0e806a9742dcaa1e1b47c5f74eb4b4c937196461c2c5b6a48bf4cac744a17dc2589b3001cddbcc5d6f15024c2b8dd854b92c61c67ed3cba8b0efa0 +Msg = 77e16e181b3dcbf1faa2d371f48400b60207b23219592ea45245e6474905fb49c258007e93d50156be7fc30ddd994e21c3bca9096026e524e5555cf029d53b7c4b563e209a01bb6bb10ce25de68c43d6e68b914f995ba5c84c29c5010ed527ed5a02b164f76903181d72b7cad905e7beb29df06c8d9f7678ceeba9e4c0b0c685 +Mac = f421ee42006f668e1de1a54b0cf7778accf1fd8859bbd46fc98c10170985a3ab690826862818c97b7696762898f25417caa5ac9f21a0a3da + +Count = 135 +Klen = 125 +Tlen = 64 +Key = 13fb1ed6389f32d1de3139cb04bcdd53525c9889b85379d3535a25d290351c95938a3d0cdaf38dbf1d5234bf7965c8ddce9ace1b66247e60d74ec7702a0f931a3cdf4cb465ca9fc458c380004a3a6e7957f1f813210b8038ba663fcdc42a8965d6a252b5224bf249552b2575bf64568db4091d58323006c3c34994d3a5 +Msg = 88ad812fd34e55c809e817199604b4a7f7feae42cdc4c9e930db08e845a3d74313db8a57926706bf0551be758a0fe239f004d237c849d9e4bfac18292bf9c0c3e37985ea54b94f30d18c32ad2b53a059827cddb95a49b4bef1d369ead14eeeb4a18e592e40ca96e515a15908a05a57cd5570b611ab4ec23f7057e1725f29c9de +Mac = a481e713cdc81ca5afa0efcb16e35cd20d01aa449958fd2eaede2e25a5ba540beafba2fab4adfef2e146b4c1b2a1832e93dd373d63fa90bb61490f6568191f65 + +Count = 136 +Klen = 125 +Tlen = 64 +Key = fd5070362296c40d65b105d5ab4653fe34e0200516933f3eeae03ed0c5d9f6016a8560b4bd86ab2f7bf98b22299ed3e54a394602d538aaf3e6951f2db4feaf5dc33426f15bb124da388d709083a28f5701ef96c28b3a3c75bef9332ef373b90771236af5e25d589504345d28a19ab0dbc1c9b74d1ee21c4bd8d423de6a +Msg = 8d2e68d7e9846cfa30d931a38efb59bcced53a14164b3163d2653888eeb0bb1448e1a80c65bcc6eb633447e72ed4a075f75d980fe2b19f35ffef62b27ce09c2019922faedb427321057fce19448d85962a08d1baddc936d1110e108e33d46f97e7882445b5df1ca4ff03edc237efaf264f1c0d9e705d9b3eee076ba57c56db82 +Mac = b6cad1ca5ba505498a8f66a9422bf539426a8a55334fab9c6b9e08e3a5179d157d1efa0f91d5c5e26ffa43f5c1cb7ca5f906ce4f0efcf4e871820b8353e890e4 + +Count = 137 +Klen = 125 +Tlen = 64 +Key = 0f67caceedf8cce39a7223d32ae1b6badae2c2ab01bf75f543dbb8a408514c4b2cd81801f9eac1aa52257c7830f120b1536380b23161f734330744ce204a98bbd9dbeede484e9b03937c26689526597c8edb98e6191b72c95fbc76468b8d48437e3af46bc36f8176c540caab3fc989a3f511b54fa2350e3d31c2f6162f +Msg = 3173a712ed715b321a849279be6ba237fc90dec0e48b0e1290e81cb86c2a10eed50f3e05e616be098e3f1da2e6125238c2e2f45a8753aa613c1ae250e304c6ff093a6b799cc34ca2fd4af81d5622076c2e8752593a27649576e12ba075ccf3e8f57b9635b77fec448e2e89b2b5a3a81d65066285a70e24f868c35f6ecb8981f2 +Mac = e913fccc25f84a1390ef0b0f86050fe9e61146c1b4ef0b4b60d187baa36b61458bbda925b96e99cf8a4330291690417fe194cb9bc2b6232d43e046d13f038ed3 + +Count = 138 +Klen = 125 +Tlen = 64 +Key = 5c8589b3845970145e12b34713455eb6b5ceb132242024e42fd9a886fc9a30d3aa15703b3467e4dc99a915ae3ac118fd837e571dcde5945983c52a2c849296b4c96f3763488d52f818b459add51f6db2468d21db3d958196bf3a531f65bf9cf702bd66928672c14f235c08aeae0665be472397d43cd9f3822b5fa9c767 +Msg = 7f2544a478961dd012ac705e12e74587e2df6b2ee1406a0bfe13b908853f31eb384fc236a275654ba8cf51d461ea726228851754ef97ebfbd69326fcfcea04f594d177633c4618c38b4d64f7e98025eca4c62e7a40634b8b0e317880002c51d0bb34caf2ee0f207ee2ae108f53b1466b7f2d18667cac7403ce75175d390e00c5 +Mac = be73d57ab3a7c5bb305451922fa9b11d0ae938bec886fac5645a8b72de93770d96465291da2bdd5d11692f2cbfae69adb36ae714f1e5cf43b9d2841ddeba4ca6 + +Count = 139 +Klen = 125 +Tlen = 64 +Key = 7198b12a22014154578f5236b5a0d4cbe29aab3bf289bea2220a4a13c9677ddd8b03400cd0f954337400a069c192c9929a4d04e0f89928999b8b081af909ff1c7b2fcc36e8f2a0a32103764610f6a3ebdba4aed05dce6164d603204ee1c37ab1a7e4feae5335502bc6627cd38b17895e0d6852130771918b3d393db76a +Msg = 9b2e0306e73662c94377e5a99fa9b63f034ba91c8b95645eb0afc381c8207b77d089fdfa6a939d212226f331f5dc81b614b597d3e50c74d74bc9ae1027d9d4e41fdb511d9e1c93851bc66db39f54ba248149448e7422e470c589eaeeddcbbedc0d8cc8198bba8e1eb7bf1cd6a3fba9b1d37177f441c0fb53a4563ec1f2e08387 +Mac = 165e1cc47a7433270f1673e1cee581001708195a3471c9ec71333ce87299e72abc5dd490d43676d10c1375125d4e7fc673adb15342ddb7e72eb24ff36f54f82c + +Count = 140 +Klen = 125 +Tlen = 64 +Key = b5ffe36117589646ac097327e4147dc9fb13f7346fd97a6fb756448b32bbd3e25edfb3a14ae194844e109fe1f9070ae84b1cea2924fc4957fd8f794bd622a74b6fc4b38dbbf040f7926d0729a67370bdb80f63cd0cc85bb61a83bd1c86a4692f52768e2c53cdc226e1ea5206d39ed6d1abb309290d87d81776fab9072a +Msg = 1e6b0799e857a1efb3cb0aaadf74c78c31d5e1c72547dd1d863eed463bcf6892646f78cfa6fe136dc2042ce06d3a2a465c4c994a9edd1f482ecbb2b2c9b509b2fdbb501083852057ce87ae33e483431e6d4fec3b09d87282e7678c1e9423541310d8f82427f6b2f4feddfa6bed57fa5b8c6642641141bd15d999e353442031ff +Mac = 5702e9898e96cf220c6778cc1d07469f13ef0c2ec0e335ddd1791ff265ce865d200e4e6238b52eaa9be880adfc9076202625bf83bc07d861401a17d4a51d84a8 + +Count = 141 +Klen = 125 +Tlen = 64 +Key = b8100034c20a0b6e423c9f6c541fe9fca08fde8ce7177191db6f0929344332fe0036926e3a2720ea9fb3909cbdfb114d4da73b85c22b43f42248721015d6d5003cc235b9c35349673ab12b0ea0a70971c1a81d33c310df3cfbad795e057e7b3813bad05b8514f1acba3e580a26ac3830a59a6bdc0f50ab310da506592b +Msg = 29aaac0418f6bb3890902888219720b59878f226d06c7e8bcb42e9c0015e96f4f802520a15cccf3fb280540e7108b251cfb97aa8fcd86d1eea5d340aa3f65234e14f5639d89155315729978e0fca914732b513374138c3c01f74cab36964cd740a1b1f59094d3554a6115ad2a6e5a3e2ebf3269a479367b692101383faaff1fc +Mac = 9c87ca3b8ee3849224833b477333d4fb1bea3d8167fda445dc677d0d70b9ba85d0c4fd79909703481fbfe99caba7299da8c514a7a0799d59ab6f9e3f1f63a372 + +Count = 142 +Klen = 125 +Tlen = 64 +Key = d62dd5837abfe25749b0371803cc47ff4b386e840b4c7ad115a06a76066a765e70074f0238d7a7dc3c4ef41f394871a5ed9d662978f6aab608df665fb51d1b31aa41e766867d04db02b791c5d3dc959fd27741675a827509f17b861c2bbb3fcccc0425172d59ff3de1129671972fbad542ed85a57897e4b2189f521330 +Msg = ed3dc5fa63bedb28c12a423320ca6dce3afe8f72712ebbf61304495fdcd87bf9bc6c61a7dbdaf977dbca9b795de894d2c696120c43dd40b00aaab117e337027de7c7bb57889677e6d210450df1414d60f28db77dcea1c89fa4a94e7046c33f1ff7b49db373db9c9f30630796e4bce0a0474b476e1a609cea6869e8130c667908 +Mac = 1e5b3b965cf268d5f9529d0a256e6512b41bf2726d762e9447e40af239cf3673fd91257edc6739cfcf9e6893bd9955e4166e4fe2eff2265c1534abaf5b11544d + +Count = 143 +Klen = 125 +Tlen = 64 +Key = ad9e1d5774ee7e882b2dd772c7867eaadc56299b7583f67b430fae7efbed4a49f913b6a929d0d6852760c711a5be67450eb9178e684abfc37f25135a408e15dc636edb964da6939234a3c4c58432d78a8196d54f2ed9728e6e5f4b006ac16c0d32d81586a717be96981e58f62b8dd6617f16ec488fd716c65ae6ddd641 +Msg = e76411d3a1a72ffae3f9363389548084510d61fae1c251400c8e4d70517e7a29a4490ce2723b667edf738220524e94403323eafff33117b74dd550d7cc0116ee8ee9160547ff4d3288226f6a42128a978628e6ea8e4431730106d8ef7341b8e12bacf6e42adb2b3f696ec5ba6189aab0d0841e66bbe3e69baf88ad604d27a82a +Mac = 313a41518da2a8194451b01a4365b1d99d9c46498c24160b51a4b494f669dd2d0bf0922dbfecc703255f7ab74fff2d7bee9ff2a4823d26874f7532594b96847d + +Count = 144 +Klen = 125 +Tlen = 64 +Key = 054221b2a3507d491e5f0da4292931f63d105152316217100adbdb72146b5f88323abd5072ea9d22e41cab4bad3549f9576280576bd93df84262ba7918163a626267f94e6161634cf8308484bbe1c01e486dc45fdaf3bc151b45c6363aa6a7c43ed2bef39a3f368e01a37f977bb6fe2eb93903b3a537fc2f3e8be9f0a3 +Msg = 56958d7871c6b901f42910b8d7a17c3172fd25454b77e5b52d81fd0f7ac206d6c15b2add936e93f493e124c6cd5f670249a0c7b9dfeb00084cd9d3f6865bfe9f4dfe6b93036ea879bd3997f89ad667d754e6c26214b948108b143d643e327e112108ba6168ceded79abad114e70f62f7bb567f0893eba71710bca120494e6f72 +Mac = 6d3c6a9a076d3a3506d7beed3845521f50b2df2c5f3bce0707d66e20bcf09445ff13e0e445190e7f2c43fc73ae2bf68858a721a67feb8083dfaf498c8b86e192 + +Count = 145 +Klen = 125 +Tlen = 64 +Key = 42d6852473735ecc21b107e3e0a5d3c5ad2cbccf7e2d9dc31d1ea26e35cafc88ad51d9db367093a82002274672c7ea0c3965777120acec72411e56343baf69eb85c975fa0293955cd5732a4276d287fd051fee1fdf16bcdd7042e0b848c0915d704741c9fe65ccb0e70bf620154c1462b9620921e3f274cd5091284282 +Msg = 2679ac7911bf024295d61b25aaa0ddba9328bbfe6ee3e5b10a36bbfcf8398857e5bb6daa27869bb295e3c5a79c61d61c8fd3df263f9853c0cc1f766ebaa9132147516d5bfc4a799383694adbb8e3cdc00257b672e40fba25cf83ffb63b1ed192f64596d4bb9604ad066d910927ad2b6f95bd2a2986d083a6bc6a3e1ca2202a71 +Mac = cbc45d2f971d684010caef1c2d6124f56be8dfdcea7050c417b0a26f6058f6401542f8cd4cc9f81a28f4a4eecdb8376d8fd5cb15ca6b2bcafe79e1e209f55c16 + +Count = 146 +Klen = 125 +Tlen = 64 +Key = 0748bc683d617a4e668f36907eee655e454d6c19e43f6309d3701952fa36582417686a335f73db6768aa81d446debaecf52ff5f3f72174b43df350734b2cbd2298768fd833affd7eac3ea5cc32a3d174f952f99cdfc289924ec1e3bb640aa8cd5119343e013e67fdfcf1ab5f8a65325c1a6080fbe4492a0bce83dd148c +Msg = 2b0b018d11c1ebeecc2a1b5bd17e3be5b87f577987ac3eb733b82b00643aa4d179a6a350cc7cf42537bfde8bd7a905a70f9d8f18d05d86cf187d7d21b918771a5cc10415c5bcad89596f9226dd13522180af2bcc1c476369b950e640536830efdd446d0285eadfc33a2081536b24eafa129d73bcf2d29c2d1c1aac86b89398f7 +Mac = ee313f4f6c8ad4764f81873d4baa3e9f9b7f6481904a01fb1c827eff0314c1305cdfb0595a4cb8a6f979d9b7ab337e38eabe823742b89c2a1ce88c5260896ac7 + +Count = 147 +Klen = 125 +Tlen = 64 +Key = ad8db0f165d0ed6e9495e6e53ea1e0dee4437cc156db2e83c999f084298738b8b1ca2706b82503edcebee76d0725b92597925db99f6e2876471598390ddb428c5d4d0b1361b99b271af00fc0b04aee9806eb5f8d924599476cde9a1ca4531c30d99ec5e107949e62a1b1c6a5e018687f5ad6ea07d667673f5f7b60f697 +Msg = b6d8212d828dfaf27a03b79f0cc73ecd76ebeeb521058c4f317a80bb5afd41dff5520e525358df7851469bef2c358b2a97df0f5c0ba68f985fd8b5369831d97802a1bd6e80507b1620e0bbc8f2f229d11beb275f25f8be9d994fdb1ed0b8b87f064c9848b07db7140f5781f20606020a29979e84160302a508695a3ba99bc43c +Mac = 9210b074bb645c3a36ce46f9921de1d6cd8c9f37829c251d1d999c193dc30467d44c830084914cf19f4ba761a0e774c103f092b51ea25beb1b8277e99fde26a3 + +Count = 148 +Klen = 125 +Tlen = 64 +Key = 484babc2861503d442448c3c43d7569a380eadd9eed2eeb4c651997867e9a80bb0471f2df0d0e5fe5a3fd2c0b39009df4e1e882e3a08fd74bad8db27f567ae77effbac8fb8b38c17e4259bfd3a450c75b1898f3e984a2627146e34d3cf44d7b9efaf786e4587a127c73c0e7a41bc06644797ec906e6111d6bc59cc035c +Msg = b04bb381f91b8b64478391d6ab6ae306e796020418bf917899e85a9423ef924739625eb4c39496e2f9f0c8b5828e801ddd04c68d017fe9af40127b56714d9db44e127dcd1ba41c2b890155d3d9721b79446002f09b6900e42bb375cbe3806a19b90316b34973a7a7bf5d3f1af83e3c82e451bc152fa66080207451ddc1b081df +Mac = 0d73f53c10c029069a2d1d5733bc6be8a1e94de821573daa290fbee3f897f44297cfbd515cc5ddb0df7bf44ef58c446ec085c32c8d6ef779a5518e63328de957 + +Count = 149 +Klen = 125 +Tlen = 64 +Key = c4e631adcca6a4735c905c369c7cd44d132200b362f29a0a3240b7e06ba49d32a6a1d82ee6848b3d828f05416657941b7c6b9e716436edae6b274b4abb0f4f4bcfca760c2a21753d49efce2bd683a2411e46c6cfc59d190bb811145664aea2c026a832cd02450b7a97f6e07b52c7a5c7e3faa156edefc3290248398cce +Msg = e8ab6a06dbcd52a245152d3851ceac0551d5c3780da0a44f5a7fedfeef222050755c5550dd262b6af6e704ce3ff37215fa51ec2781c1c65cddfd60e195409d5ec40596d56e1190ce14b32cb1864bde73f909a07459f7e8a8e13ad7f6e895b3ddfe2e975d37956915c7020da9cfded866778548293d4bf27c8dbdbb0391294b17 +Mac = 8d9725605aea94c3ef125b307f7acd5a906d10b4908fcd21f678937cc4605b0800af50480ef6ff1439cca60cd1986f04a1ddea0abed6c8dcb9b485a923288c03 + +Count = 150 +Klen = 128 +Tlen = 32 +Key = 39cade3895b07abb4c100d2ac97586069efd1cfbd35c41097e23d1e194439092ffccd364f1fb7d0477742de251ccb6d8014ad00c22ef0d17fbb30e675412f6e188c71fcbdcd80cea0fd29fe733568cf8bbd40ebcd497d966f9024f1dc119f6a3fc432a35ff4d0fb33cb3ca01161bf1adf3233fd2925c8d3c9f96fdcc845f791e +Msg = ffb6b2071ade0ebbecdfe6dcc8ccd52faebb66a1281b1c397248b64cdd5db0f0754a0db2e226548c8cc6d911038e3deb9d87388761b2960f239c8099f133fd9eaed8b9adfdb5046061511d90a261b1c572e29ff05064fe5dada961e34d6e595ef1893c5f33342521b1a93cbf6def38a574f32244beda5b0b5696e092bab7cd18 +Mac = d4080ab37e7598c78fb4c5e43e95483078c1e15e2b015edb30a5dfe3c739e5a9 + +Count = 151 +Klen = 128 +Tlen = 32 +Key = 12dd35387a7d0ccbb91f4fc9afb087a3d849b46bd2aaefe719e44ee4165508cc58d9d97b213fa84f24fa687e8d193cad427adebe683a41e92a6f750eb51acc4987573bc8ead702d9bb908f4770b3a0e75adfa96e26947585aaea0f20df83e30b29be21c5df2d6292074a8ecc6165fd7aa8e1dc2414a0d3e523bce4c199789739 +Msg = fd64d1d06d7b92b77e33e39997ecf3fcf674a5453d7d36ce2d4e2138b1b83f031e4c335bb9cb05357ade0d9b0f07134424d8b468e26307d2b5f1813753f716c6fa45a100f88186ca71d496c15de333cdd001b4f97ea20b827e13a42d4e6991de18b8e56733855d9eed7d46b288679abf82576d9f1a2487040f1d53c3abf8f873 +Mac = 30871176e17a7e99a6fe06ed5d679f1f07049ad445ea9122f736e4f67151aa6a + +Count = 152 +Klen = 128 +Tlen = 32 +Key = ebfd4b4363dd0f062c8c269929b0a9815f8ae7a3a9d9b44eacfb047c0e56b855e3f6b7f56877416ff42680122b6360eb754aa18aaf922b0920b4a14bae50388251cdcaf4c94126fe8c90ab5903d7159cf50b960244dd296ed7e123acd7f00afa1ecbabc7ec0067badc12cef617d46f9dc816ed92d0835684bacab128f1fcd6c5 +Msg = 4abf62e4cac5013498615dd3de6310c71aaa966bccfca56f7135bc20b5a4ffeae5b2421ba3c464e9dd63deb7009b9b9468a00b051cb87304b8548748aa803ac7a17ed57a43ae46601fb2bbc5e2ce70c4cd95c50b66c294de6e64c15f143e130c686d4289124b51a044941d86edc7375f30cfef0514e3b1057dab95eb5ba431c0 +Mac = 6d537fee2a5a8c97fae78299bb72e2b86793eb3a6937a2708378ca01d6c47e29 + +Count = 153 +Klen = 128 +Tlen = 32 +Key = 856c0e585b5d297fb90a0f44480854f8e15c36f2503480e258d5af62f8d552ceed8ab75678c2c35161b422d43c37a184eb32d7a864540b83b50552e0459cf8ee5cd2214ee576b06b7363680a83b0512201265eed0df74c3ffeaccd17a760e673da2c96692be2b874f6fe2a0ca4d92f79292012e8d1850dbf3db4682ea889e506 +Msg = 5f419909012f911c154b7be2774c44659831fc422d282dae29af6cbbe9f92dd8af93dc97524729b43441a35273708887642fdb1b3d25b88d1169e55702eaa973b20fe11efa9a50dcdfd237bcc1e125ddd67b1131d7c0a681f964deb21f0dd2464efcd12661f0af9efe475fa9c867c46fd65cc50c65c2a093c9e68052aa285158 +Mac = 613c4ee61a140bdf293e8c1136ebf7b350a6532ed0238bb21776828dc82fea0d + +Count = 154 +Klen = 128 +Tlen = 32 +Key = 00bd4db7da41ca61ba441aa9778eef4e608a1e9a2b5f3e9f2e5c72c1d299837444db32476db9cc2225fdfecba34debaf380b7ce03e79f75a4b21d48aaa74cc110bb132c5790886f88d0048fee1160ae9c8a6c9973c0f7def1813ef67887ccbc9bd05f638e577216e5a139f47193073837725aec70f69f8e6fff96c5f54faa927 +Msg = 913aa422a59507de05f89840e0a3262aa220a121c8cb87f6f392a0a53bfaeb7dc562d881988cb70fac5971bf44d4768e7e72f63c299954f2d65ed8283293a4c69301e989d0f25aa956f3e1b978d791ce07ffdde323d9077c50a7db8acd829c8f219e3f02f6cfd7f52a4c51f524b46132644ebce05e9588dc89f41093b3cebd20 +Mac = b0920234c63ae297b519fb548fe5e47e221a5cea67fddebc557f18575b869e51 + +Count = 155 +Klen = 128 +Tlen = 32 +Key = d282396db948b2e4f3057fb12ac64774cf4b9e00bc16cc0c17c2cf2c7996a3004f5ac0ab8169e5875208141888f6dd3ecc45e0ae53678ea2be8c2fd03f2c2999fedf7f84bb7598eab44342f3c9bbf6c1de405eea8138142ccc62ad5c8d69f6a0a5ba7ddeae935374e15d112a363c1964cce41e9d8caee7100aeb4fb8ab78917b +Msg = 2fb3b04e1f5e7fade5abfb52efe19edd2ebc80181a657b85f7a18d3957497fede1fac453500da4a6bfca9a8523d8fa0119f8d6f5e2f42396abd1184a124cd7bee7854f322ff561186fa541de27a220089cac0881da2e0733fa738fd5a1161d04c9ba1996c4fcfd2b7da6ba04022558193f3edc650cfc6e856bedbb810a8e99ea +Mac = 48915cfa32566c5047433c0a69ddf522bddc205dcf336fb2863a2292fe0f9c00 + +Count = 156 +Klen = 128 +Tlen = 32 +Key = 671367d3011146ebe23d97b3944466dd97fc408c0e478d5cb93921a3237d0df61df4bbef6aa03a2ebcc1d69ee03decf93545fc8f6236004348bdfcd6363fd7685c78693b8362d5bbfb5819bbd47be3025155a70699bceef7b0f9f1ffa62a66c90ee59a40b21ec099854b8893d9c5f4fdd27268791ba10081d73525a7db066321 +Msg = dcf7145eca1b1c32d1be48a7c23d179622d65cd480b0345a051c3ba34d1b00567520b62576172cf5b1a5ff3fcbb20eb6ba252e2a20ee1facd84abff3cf427efe167512fb35186c68c13bea78314eceb8ede3eff2a8b6ae51f0ea2cc70395baace57f91a8af27c4d22a0772199c1940e4e29a06f5bf0ec9937484eae8911b9ca8 +Mac = 46a100f52104b12053e29d99b0a2f504d48e37641d590556b8308c4872f96576 + +Count = 157 +Klen = 128 +Tlen = 32 +Key = 10c08a87af4ee0cd4d67f79fd3231b690deba0840081d15b7e4029cdf7a6c6d3920f1a637cc3e49480335e02d980b874443dc6bc5976f6df1af18476cdb3f15407c6b1690a3a24e6506ac7a26881acbd013c278345f1cb9368d0944080696637976eb662feba870de5939948292cdd8c6d6e2ba16cf837be8d65c2f3b9cd0dc4 +Msg = 485a200ef7d07627986786ae1bdc734e4a61ed0109da9ee0dc4bc43aab911fe3c2510dce1c2ff4dee140e0fa2dc16d601309e83be2bcb177a642e3d4f2773739dda4264c4baf4e3f6e8e17ec8c0196250281b2458973850bb8a205a9caece317a23cb3ad0cb84ef1463b74aebf05b6461eb193488668e245185570e0ba58e925 +Mac = ce00915bb0874fc3affc15c66d336116edda115e2b8667aa7bdc7a4125888854 + +Count = 158 +Klen = 128 +Tlen = 32 +Key = 41ecd9f2f9206805bd1ed2de2f0c74f53a411974ad58c3eb2883a9453c227cfbce95ee87bc4e751cc42a4c94a101bcaa767c996970260fe4a7c69f2846ed646feccb9b96524662d12d4ec09e566ae6f72897b4cc29537fb0edf512d3383ff2306336e7070131b78ec23135e497707a46163d738521069cb7c2b70a2d5a43afa6 +Msg = b20315814413cddce84df335c154697174489fd08d9b15681e201bd2a865dc233f439a1deab33ba749e3057b7a8aa61f3c78771655710157323bc1fecef62842d5ace6a708296874e30d9f687d1f04a9b1e4d9fd7b71b13ca47d3206a2ba1ab1ba668085671c5d2cfff14a6494bc8bf718b54dedc5422c00bc0df850ed5ab958 +Mac = 38c958f3f6f43943c8c1843814cfdf6b58ac8e4b55b8e4f348c58271058aa3c5 + +Count = 159 +Klen = 128 +Tlen = 32 +Key = d465051d1fa80fc5114ee42d64fe23c8c77325de78c72fe915f2ec40b08e1af221dd83f5a00c2f8093b9d8b5a4b49e831702fccb5a28fbc1dea6a59626c1bd541e85ad09ad0bc0278df8912b5b46c47dea47f397dde6eb6a753119fda7143f5872676ba06f2c2a83aa11f9d7b03dfc7de948f38c288b69ab819b2ebf5b1008c7 +Msg = 600e55b75bc37ea69641bc0184b9ce9e76ca27311cf49566484f202df67d35558add045d580126876963832d7c5373584c34238f11e83bed4989bd77b85a30acaefdff5d88e61cbe790fe8be8bed5794e0a44f9a3e77525fcb825df714ab109654d60e5ef458a7744eaeb559b670c378bb8075fbaa8724e354a2c85811581b3d +Mac = 2e2b59d7843be5a3e1d815fb12e806864b4ce9513f51b96ed2423fa3a1004815 + +Count = 160 +Klen = 128 +Tlen = 32 +Key = 6ad551d1e6989f5f14cb11316d9187b186bfda6891487a1427f955fb4566fb80942400f4ed38a2ae1cd0ac5ee4319b9e44f1fecaf9662312445eefcded100e1088534d80f70e436430f037ff41613e1c91b8a4ea68ae8d0ab112dce7ffbf5446cfccfd1e0d02caa9d99378bb8a08b953f37c926fe6080225f77ee4f0825a1648 +Msg = 0e2bf89372b47fd8504f4ecf7fc90a5ae6bcfa6f346c601bd1ef0ac7149124bbb67650e08681f9ca5f75e3f5575a074f3a239ff7378d7d45d84aa00a385f091970cbcb065269622d5a1745f6e118bf5894b7fa9c252d5d6440c517ebc13efc8e2471918c3c34620a287d9c5a84cbd77cdcc134e56614a880f0a897f317f6a523 +Mac = 3966ea95938b8bb1a2dcefa33315bf9bd3de12370818ec4703fdbbf52bfc6b6f + +Count = 161 +Klen = 128 +Tlen = 32 +Key = d136f9cc2ee6d4be1349b91ff6c9fd47e31329e9cf1af03a2a5f6456b37169df90af69e79e55491006b79cf111c717bc3ddd451e90b87c672cc010eb248dc6a88ead8c29d9a267aa612bac7c41c573ab687049dff0b62580abea9e1dfeae5a0ff2b7ca5988d514d34d2d51882fc9f95c8f549bf2971ed2ccce6774b4e9d90c5b +Msg = 6bca8be181694dfc4fe2721b8aace6891f8baa52bd077b56931dae9d5b345fea9753ca931a90f98fcbcca0d1a69d45d4038ca3781b81510cc87b9fac8c84c1cdd5e52f167f964b729bf844636fc63b99bd49a5c349ccf1a595506a6aef815e3cade88013b8618bca47d02878ed1012fdd62c78db4ed2a3488204d8818b118060 +Mac = 45cc9db51d4a60e98c24451ee30531fc41fc47b118d3bdb8750659d8ec05344d + +Count = 162 +Klen = 128 +Tlen = 32 +Key = 475678927334f6104ced3f18cfda5b6063130d6e0ed8ab12e92f2c34d1cf83cf603d2c3e1b3504b7ed4b5d15d5d252dadbfd5874484416bf160977cca67cfde1b1bc58c0813f372c61735eaa52a5f885ff232f14f39dfb3f0ad137402568faa7221a24a10c1937798ead695fae1bf769b8ccbbd777ab019babcf9719b85a232b +Msg = 3a606b4770adf9778a9eac15cfaf182eabec2ec3a412c91490f1831f0514cd6312a43fe92c8a2c856bd47a5af75ab09cbda1519a66ff69fb890065471f0927aa383b5af5ed9a03e6966f59a93debd79e520c8f5d9fc5c1f87f59ac804b08a4ca16ed65729a27a7217137f30c89a9b4bdd2f7911639aafa93dac201cf71586c4a +Mac = 41d9552bd694baaf36aac029d04fd84501d7231f60f28a1e7dda9f418928fc28 + +Count = 163 +Klen = 128 +Tlen = 32 +Key = 9904994b1973c4a0d161f84d2f5729c5ecf9fa6de18b2f491cb465d43382002fd8af667eae236b905bb90bbedf465f1524d8cab7d53b747e74c2f9e3a743621ed364548fec15875d8c5e7a5d425b65352c8570c1c83222b507601c84a3ae0781b3abcb447d5301508bd7acf3019d236d2d88525460792236fc163681cfcad8a0 +Msg = 8ca55de0457a2202c584a0f2fd05e31609b6900f585b29ec0e9a8d9da60dbeaadc96e725caf39edd519266d4baa678f39d7ac3fd020531c2c7c02c9542b461ff26d7c3b5ab98d3c8e9b91f1c855d091b9062caaaacf0b75c7152c2e60f0543d4340ff97a30924b2c57a1d4b2a6521ff6aa15af009e444324d4fb587a5629ee8f +Mac = 07ded632065d67a08e9c046786308095dc1002f748ca05e52e25a309d12bb546 + +Count = 164 +Klen = 128 +Tlen = 32 +Key = 0a7e6849757612d578b9a9304303099d9f4d5285dcf582bf0a194a0e6c431aeb294c7f85457aae07d0ec61195d38e1a9b65264ebceb09a9ef7ab8392552983679379b897d47e8bb7ed1085f9d19f65f64c196faaf50e06c05e137d108d642b67b0cdbd860ccad06d37edc0d98780ba0bca6c19cb3759efada517e193fb3c3973 +Msg = 8cb6c466cca91344175d7cbadecd1d443cf80c6b2c3f3344fa0e5e39f7be920b71baa118e2e1fbda682cc7b1759132e2c82707df9c8a81c91f815d3325de32291ea60570457218101b150410147f078190e29fbe0c1358f19a32e2d98e8d66cb7bc21af75e2414ed18605c60226144297c70fc8ee6a061c5536916b49b93d6fb +Mac = e5ae5b5c9d5978cb74a8eaad15329f68d86b55fda33c202f21d3df9de6b17157 + +Count = 165 +Klen = 128 +Tlen = 40 +Key = d86f48541803cd411fc34aceabc78c660c6c8306d8429944df25429161a9d4bb7fbc9ab6f086239bf594e0f18f36ef2cef2531732e69a2a63e7aeaa021a62fb958b22e8f9fc48a07d781638e44722ba5f8acb59c8fb08f9d1d9092ed6553b76f4c9b2d6a8d85a88badd1fb2e3243e9d91048380964dd083264ad6301967915e4 +Msg = 3c283badcbc4cc09c100ff016d7e3c652fb2786a379614fc8f9f01555cf029cf61cf0af6c455a4e2156996c48cef84be923cbbf883cd18f0b3392611af658688c5f79453c60d479a0a2e5943b581a8c1393cdd2c1c604b97fca41a9ed0aea43e70891fea58547ddaa83790a7709c72152b9b242f89b5759a72c6252347354b9a +Mac = c01a4e9e331774e549a56d23ce4959249d6a0db06d8c42a0415a99697c96c23798f8c1d978fdceaa + +Count = 166 +Klen = 128 +Tlen = 40 +Key = 0417b7fdaf3b2080271415685fd8bfc47c2c057137f20c8e8362fe31705c0b5850fcae2318703240090674a68f89ea8669cee47e0a8a12113f66475413567ce9f026183106566fbef027880795f623604dc9fa2946284845252e88cef0df7f062bbc7c914195dfe2269fd8f43bc6713a7244cfd8b273b4137ddf4906d0a01b97 +Msg = bdb0cf79966248a68d3fa4f9a122e4c1f1784e7c164762f7b67011b756312a9870ed15b4c630c386f5eee5504d0b5cb9e020f1bbd97d47bc106a0dfbdbb3782e2663f16ac6cf0b420ad6b7339368bb40664560d940076b012a634fb04caca1760698cc623d470622f381836b1b40e89cab6e029ef2efb80e2ce23e9e54248cb8 +Mac = 4f8823e76cf5777c21dc05ebe40717fe559fbf9cfa8274cc34f742962f6583c7a92b268e5f6d76f3 + +Count = 167 +Klen = 128 +Tlen = 40 +Key = 34d7efcf2202c778d9087283d113be98e6181b78a30dfdd5c0568267e980553cc231d250275f6b5db8c14af4958337cd663ebd5c9f2788a402871250656b7f00b59cc5e13bd10f801e2464e029c383cacfe812646c0bf805ce560848f459df5f15ff0faae5c07d881319076e16396a3629fe63b9941f159f2eabab7620b23e02 +Msg = 4d5e7ddd7a9bba85a00812e19c23d888f9589b5f58d1a80c158fd0ad27ba6cc948359e865776d91dfa95a38c87a2998b253cb4c02e5fcc36d87e5a0c15d2826ab7f151b9d8a2431479f008f9697d87456919245f8d933eb3e5cffc625d194a37e2b91edec6c800506642c9920a5cab9f0c1771a33d15086984ab3f17c839cb19 +Mac = 829ef13ab3c509c4e0c833bb14d174f166579a19ed7618f32c8be69a19797bd0da86b6234d8f1ea5 + +Count = 168 +Klen = 128 +Tlen = 40 +Key = e32c7692015f78ffa00e00e4bd98082144800f0bcc5b6c6d81ede1cd618f73f0acd379a0956bf4ac3e471e31e3fe4618566fdae0aba8c69d3407fc41b09e541bbfdc979d996ad662005401707369b5baa5e454e92d4c5b5b7f98f06c1b97bbf5048ff7137425c92ace7cd029d4a1fd0f1a27a5aeba0ed4ae4aeae5d60b404f87 +Msg = 01a6f9ee2e42008898a245cdcf2a696729e324c3adce420b2f78ec55bdcf291a3a34a5e949d1b05c6d2d894c6efddd41fe3e8b2c9c80aa59b985cd9f190a85da7de5289b7f50d11dbd85a87b398b6421004f0e800af6070762724c4e8653f99411e00c6b97676cb2d1d12ac4fa7906ef783f3528bfd861fc7368f2cacc528c30 +Mac = 203659322758826f2ac7e2dff082635017cecfc1035f254aab25d3a3f05c22a1eea02231dfb0ea64 + +Count = 169 +Klen = 128 +Tlen = 40 +Key = 668b5017737b7be1739ee8580d110cb1f3cdd2ba0a33e010cbe71b92e9e26d1533c3c65abd66603d3ab8482eadca1ae541240b52745b2dd37be6efaae22de3ae74e3c5405a96b8818784d2c353b1db3d65365202d7dcb13495e9f374063a529eef9255b394320a1720aa90fd46eed91f29acaeb279ddf499df9b2dd99c32424d +Msg = 7ce7c4013b6c2e1644b855c027ace60996becc436cf1509cef0585f252eae3e87f7b32391369aa4ca97558095be3c3ec862bd057cef1e32d6237479c81d2d03a3e1abe5480e6e5824cb80b7f4734923876d7572349e5d9d2d8a39ec86cc7d28b412d32fb8acb28e1b6e737cbf2879a18ef2a284fe5b57bb5d8b0511e1ab23203 +Mac = 3eb6f1996b9bb3cd45e97adbe15c7c53b882aef08a0776c6cb0a3ec2676ed4d36ae81ddc1cec1d04 + +Count = 170 +Klen = 128 +Tlen = 40 +Key = 2e78d82d417e5169dcfd1c69f5a972961f57248e51b37f77e9317294f046f315a0d79e3423f29f7d9ebcd36d6eaa2a3fb2f4500309478cf09dbbe8fb600492a995ec822193015d85c58a9982f6c0e326cb3bbdf291ab6c3139c81188a18c16cd169fcb1c161351285a51b8d0145364f37514b5847245e7e1c84236603d44462b +Msg = 706d477b089a26e9d90f4f1991527de17724c128a9b4ddb4a812ee3d17e64fc6c062b92dd875af00844219929cd02f4eae03984c46cbd3226c9bd7fd6f1df6f0e124078be3e2c4b0a35b71a22219bf5f3b21ef30e1273a7ea8fe71e78652e191db9979beb0472fa13c419f71ad95f5bb25680efc0230da6f62230524e6eed652 +Mac = 9c1df6b8ca24cff2b505fed7efd8aa1a027893e286d8cc4d598478c2e9924ddcf96a0737e3053954 + +Count = 171 +Klen = 128 +Tlen = 40 +Key = 4e9d424c31a7441f6d16d41caafc861ab8fe3c002d66ec7d5073a3f936f3cacb2b14a9ac5478296b9287dee3a809442ba1f4490c6c820cb8ca87e5b86a02a52751f21f1e806be76fd1e8599623e3ddecb6a36a1ed85649dec25f1cd8bdf11ee889ddac8afea80592f4e14e1d61b1d9c7c1b4a61ebb072a5701a3504078e9be76 +Msg = 9a6fc18a62f8c9cbd62fa8e0b960c9a1514453a2b4309507428da79973884e19d30a21d44aebea77a1634f2542c1b2c73f5f55a396d5c231b46d6a2937d78ce1f81e58d649db55887ba9008ca4d8b6dc9e66d371532a1c1438535a711811486d1392afb9e630d0a76de9023d660f9c897740153373996a59d927c0969d9e4b64 +Mac = 32d1db1f537abef5c170b9d204eea2da1bed58c990f4b720cbf3212474222a99c1c518ddb8db1c82 + +Count = 172 +Klen = 128 +Tlen = 40 +Key = 860880cface9225afc6c889d13c3e983834ef984316c671dfb92aa7d9e9afd82d75da8e3c98382af9f9ab4f67266bfc56d78c1582f02f48c70ea7793e81d51eb6c26b3915bff7d723827042298f412d03f2b2f7a86ce1f5d0035acb05c60a6918d8c274029041b8b0f3a00894d16eb8b418ecc50fe77f278f09bd23bc40b045b +Msg = 142875dfe08d2b5013a60a7989afec181af08c506f40f54c13c83a25cd0968062e21b98e66490a755ca38f73fd33c65dd32aa992da6b28959048d6fb4c8ce388d0bf4a9521a54bb497081c9730b7dc2e29cfc810d039b11c9474ae605e950e3a248c90bcbba8d755ec5e18aecb4616d344665093f7b3782946d5281cab2bd163 +Mac = d5d40a0d99b0f1e52a9836896b27ec719ad1eda82ed80f6d2300d885b9b9813fef778c04714f1fc9 + +Count = 173 +Klen = 128 +Tlen = 40 +Key = a31bc73a6a73000db291ff45b0ed2d36b2a7f91f4b1c1f60b0b82ae7620b37ec0d1efddeb0070a9dffbb4fe90624df1b0e73f412c4b8337198af310864dd358f4edc409aeff44ac9b5ebcf3f851d8a56a5cf8191dac041d3cd016bceb3076fbd2dff98566d6149fa9bc886307701b5513f61a685d35cd2ed1754e02299af6edf +Msg = f776c8cf705d589211ff2260640b2ef1d492548c1db151ca006f1b9c3be8728fb8acb84f0562026a04b16f57e460b9b74fbb09dae5391085ea5d53f33bdac61987fa9d2fbb405f6bbe4d3c105f00a0a78ce1088cc4c015adce99de8facbb8b92cb2920757c41961ca89b3091be340c4af1ccf9aaa18c88c916ec667874d4e880 +Mac = 517a096bca0ab90ec251347661ce9bf7a2d001520bec592439bc53e32cce7d36ecb2cd4fa9ccb416 + +Count = 174 +Klen = 128 +Tlen = 40 +Key = 02257ce15f10f124f867c93ff6ba295a36836eeaabfeb725fd3aa3b976705cbd1f95d4e8262b4e01835c2196db49b8f1a5a0de488b6c3834133213647e396193f129fdb7d2d8377c75608cf0f875b5806bf5e42334c14ad5b2ccdc47217157d5be0a81b82bbeb27d149a94b513e327efd1ab08e36fa3f2f0243085c927c1466b +Msg = 25117774deaf7c068cbd4ce82a595a584ecc9dfd541ad81eb9d71f12c53b97f76d797da7774d6ae8dfd4d5e37aa1d9d8d90d380f70cea112f7cc2e19113031c62cbd3012a8632e883b112cb194ccf0cf3efe05cdc8100377233a11e74b9aa73f2984999eb91a514c681c5b38c00128a546460b20a30688b503cbce62bba482cc +Mac = 942bd05f304ba8681912892f43e59f9d0ef11b03fea2e97135a9c495e945966b02022f2409c4a926 + +Count = 175 +Klen = 128 +Tlen = 40 +Key = 82d0e0b45e5f0ce5ee8c33a745eb29ca085ed8e581dbee3cef70d3e72084de31425fc83ff7ed61f2a7be810d1a52429b46946c8b65a4319e4bd91b83f707424068fdc2d3b2526c195062bcf0bc930b983ddd066000895f7e6b38c33eae280b5f9bb3b6b9b7189724917ecb965236ee8b96418eaa7a12e0a5f694b2616e6fa157 +Msg = c21f5b610ef4f0a966a3ff66ae8e312e741d23bfd30e66ee970dcbe1a185dd7e8eb5ae239306d798ab9cba42f52b0a99570c8edc689021038d94fef562553afb5b869274aba067cb647a07a7e0192e6161c9cdbbf46c09cf9b138745aacbe7c972ba8ebc1d6aa92ad9646efd3901a570d77d68c63f4d273b08b2ef3b448febd2 +Mac = e3e1930b791eb77a200ab551a591b972e31d1133856759f7a607fe358c46cb9174af099472e11d06 + +Count = 176 +Klen = 128 +Tlen = 40 +Key = b7e2a930f5ca534e8692c4dd752df57f2e6a4d93e1c51fac27837541e8fe0ca67c3d9f3a10c768e34cb9e5b73317d8fc4a609153fc656f303d5aa58d6e2e3ae08018544a5d73b51183cb8650f23853ed49ea58cc2c06fb42e8b199cd5a6985020d9c4ec6a27341c175ef2f107d38713a743228663850c9cb72adda677559f6f4 +Msg = 71695a2754c18a349be576a7d7afe04e70741a42ec376cbd6e1db62b7d21568407094cd8a6999c2c2106f48436ae8f41970559ad32d354d5b59d3a97526064fbc086eac782120c4d6b1ed1886287ed6763e7e869c6c37d6ac40641bd37ae857aa1c67c197094a140801353dae2a4c269dc000f9d3071af25a14211c5b47380a9 +Mac = 395dcdfb1daa4d0ae503cc0e218e6300fdbf85128cfb8f5d79c70c575887faa3237d88f30682aa5f + +Count = 177 +Klen = 128 +Tlen = 40 +Key = 1c96b62131fcd9f823fa9fa37263a31bbcad912c30973c34460eea28ad52f2d785558a73cf64da4d220855e09f2f48112787b3b5cb2b59548381132c236269798c7c63f41ff59d9a78519aae58965a01e2ae2f710b0cccb04c939f4799b361da97d5ebad0af94b678c9d171685e1017457eaac69d984bed0070b377ef88b0180 +Msg = 94090f38c01096160bbf1ff92e346380d8b4a3c05e93f443ae54db508612196de31fc823bbeaa701ee26b3e47b28f775ef91a4f2242e6432271cece37a30d0177c959cff25b720f5f6600bc03021bc1445f454598c1f10ad385cd62c8b360d6f47b6b252663fa8fb0ab75018b7e75a67c025db7cff309fbfc95bc0b421ee777f +Mac = 85052994aff398ecddc38e1da6eb3cd326462290f007ee3c77273337905a6e47bc6d6766acf7d1b9 + +Count = 178 +Klen = 128 +Tlen = 40 +Key = 9c18af3861895790a70a1baf5042161076364c785c6a3e36a449bca9c2c7fb04b045e74ee3b5baad7ffecee3c7a2af19d79e75dc95925165e521651d1c9bd960b8d92b814e69c60fc3ecd757bfbb5c2a5fd17de12ae5209d47d6b8d4ed4c5d091a9d22da88eda340dd9add1321d743cc76960e8f03acd469322f5cd61b23b186 +Msg = 305d9717bc532c39f7fc633b38a46b64386fe5a0c7403c80bdda35813445c791f4742ccf2f2438936f07eaaecc2241f3627350f602d89513282c87b22db36ecabeb877a48d7408e2463251bfc5b1249886ca06ac5d5286206742cd464015771e7672a11d3e0b432e66c5c1f78b19bc5d8cba2e4a3e78b6ad626430c3d4358996 +Mac = ade6d0de71a801126e8b9d665d4f47dfab6a6f9ac1ef8cb258cf03e94f2697aef912140a76ead496 + +Count = 179 +Klen = 128 +Tlen = 40 +Key = d9361e9afb0840ac9be5b17ff2b3133c5503fe2cb68ba2cd6dd6ad25393a6f56810b3b73e00e1192e1307b220778b57f113b10c47b8f98e14801f5edff8b8fbdf4c0f6b5c84a80de3396343901cee6535b08a41a48bd51ef747c90fc2fdfe4c8b8bf1508bca4d5b91a7fa36be99cf0e0bcd280d524fd142077ae46fbd020b4a0 +Msg = 0266358551e3b84d465f78b16753d81ec0aae7f088d4292e01169b74a024f1306ef12211aec626bdc092fec34581f6d084cf27250ddf3f489b8785fa3fae176abb1a76a82c83455cedec4eb8b733c6ab0de6d258d7584ac64df4bcd916d2b481b1883a3115439d9394166f7a0591d1182296f1712f68d00fdd0549f76db64fdd +Mac = 9b8b2d10a2faa0208ee3043d2a0ba3132bec4deecf8a5e201bde20ad9de823b2bce29d48e0aa83e6 + +Count = 180 +Klen = 128 +Tlen = 48 +Key = 3d8e7d7ec30c16b7472ee0078b04be96a98cbe06491ef0f8170779d17575e3be6c93b7f5e9f44e3e2635e4b266deeec3e58aad7d0f48040cf040877dec9ad4c9b09b260f6811272132f20642d340ca2eaa2fe65be28a0d7feb5347522aaa4595efeff153a82b4a6755ac6f3e3cf0f9dedec58e2729adb459ef87e2d7976cdd2b +Msg = 1d00e440026f7efd6d8864fba48aa697e6c91ce04e015f93fbea194a6e0c7ff033d51b78c4e9cfceaab9170ee5578ef58e89b495bb1cee4ca37acef6037f9562c089f603cdce1de84ff3f0eeffda9535d0bb34d0d376fec157276e2454fbceaa0a43fe49e5c77132a45d7804babac33ff48724fb5db897da5f19803b2a2933b0 +Mac = 3c270df99f8b2ab166fd29d5fb347c7ae5daef697fc20b408dd6f01b15c713f1c626442dbe5dafe3287f2e2c8651c332 + +Count = 181 +Klen = 128 +Tlen = 48 +Key = ed8fe523ddc1939262facd6d722b56bff66783d422e83756025311b6563ce4cda0ed68c47b632f312e9ada82810b8c9fd0729fcb5dd496cbeac1534b88d78b7daa8776037d1ccb0f7cf8ebc93f215cf193fd7ac5d05a692567b14ef5bbacbfc332e578a98bf14f75729d6a085177affc6a917c8a238198aaa0ac6a7b97c569e6 +Msg = c0ffbe82e2aac87bf2cbaf241643e00b34ac9941aa3f435f40f402c75aea8a2c730a3455c6e8511d4ee9bebff1abb950f9a1f28dc3fee5d7bbd5687c887e8038833b79fc6e1b36ed631fc5b00a9c36e50fe0aef1d318b7016272da4ca67e7098dadab5ff400e1ef317b5ed80c8de02d160b1f4f6425660e41e1281bd1db30152 +Mac = b94cd94b82f7cbc2a992b413499e941c0301ed8714c5e07b3badec2be179756f996e338025fb35dc729f96717c5ef8b3 + +Count = 182 +Klen = 128 +Tlen = 48 +Key = 732957d1867047f2904817b4f559649059870d38b2bce77ea2e8b27205464ccbc6e02589f655f3d81fdaa736d57f9fd88fb41d4ab50bf857fa3f9128ec7609b0c9c3b14795efc29469794fb10edb778acb0fdf867a52606ae128fc7a40a017e127d9e3528ac51df0172df76bc7f5556cb4a23b342a19868000a9dbaf294cde26 +Msg = aa609dba1271d02ed605b2f3824d3b75e6a3ec7eb1ce069f4282fbd2ba27225d56dbaefafcbae134135d7d1498a07cfd6ea900d5f6268d65e0d57603414a956ee5ed3ff9e64277ec7d6d622719f5fc08aec8088f507f4dc000e4ff49c6b17c65009b3900f98ffb1cbd3c4a732cd1225e4e08edf5e663ae784ab57fee71e53d0b +Mac = 21c616f2df44961b2e5ea64d706516f8283732986ec9b6a5f43e28f0344454f218eb29500aea12500e86d8f5c78fd962 + +Count = 183 +Klen = 128 +Tlen = 48 +Key = 107fcc04358c79cabaaf3467ba6c0907bff2f6ffd8e6a0b2eb6245b54d3ef231908ef6899c6b963d01f7020f8c9b8864199308eca7ada885b24dc85dbdb539572e83a9b15e7b62e3f18735ca63fcb005e41f98a066e893eff40624bd4522dca79168cfc2a34446843069b3e16718eab4c99f8d613b20c8b859933f1d0e0e45e6 +Msg = 8f330972e6324b383793647431e00d0bf151e929c6886590377ee43047be19f8f7d1b3ed0df9407914224b05a415c8cae3efb3e34cd1f3a7afda84377952d55336286f72549fd8112a44b74b392338aab13ab23d372e88eae53d4d0692742b2354228529448cdba981e2ee6d78722554621c305d0d06eb01e09185c61a8be111 +Mac = 3f94388f059a158574ca542ecd2586493fafe193e9e33f25502fbce92f7ca3ecf8df7ec2ce74aa96399d9300c5ae93cd + +Count = 184 +Klen = 128 +Tlen = 48 +Key = 08eacf6fd640cfa8bc15f77ca18978a65ddf182213802a4ac143bd4015eb148b83f25605948587f481cfb777007a79245e7397efceee044d01ab129af677e5b814f528fa769efe4086073c63cd62d5d30948967e80b613f49555e1c999fe053be37dad1523951ed4f345ee07af4a73fc87e57b98d2de3d87a5c99096a5885b5c +Msg = 88dcd82dc6e1cb894bc7fd88cff38ddb13b6dc6d227cf03ad6461b649f5ad7838038f53d5ad1f7186df4ba8b1c09585bf0014c25e08dd736d08ea3a357cda797c5ed4ae7659ecbecff13e091a1b59dab9f199889d92f4bcc3cbdb9798c0c554d60e21f516eaf10ae080bb8c1e760267228e408c294cb13a424baa50ec47ea94f +Mac = c62015a3f4f85cb142f2ba59daf9f1d3b49cc14c87a30a1583974002ad8235aaa15a96e7aada71a3f7f22eae6a4ad336 + +Count = 185 +Klen = 128 +Tlen = 48 +Key = 8fa70b480660c4b14a55e58c3e29953461b167be00572f82aabc13d6e5a2e51d1f08b001e79690fc5d3cc71de7170e092694294029d7bea1e05e6731d3e10618137d59ec7112ce32efea9822749b02abc42e03b7ae8013b088e93e43d81c7764544e2e920d9b255ce7a57f244c7e1a2321c81eadf91ad6b689a6bf965d19df09 +Msg = ac098b6812025ef3a8e024c21a2f88e40b95e6545908b0cfa33f10e30966ce49331675749584b16af1f9fcd31d82794f06e8200df5e21c9a118a71f6260ee2eda4a812a4ebd0e973c5b039f234d8a2576f33b3ff2739514a0e675dac9aec910106a6ab219b4cceb52ded2549e899c9a24d5ee55177761888a3be1a2def6aa32d +Mac = dffac17c47937c172b6c514b303cbd7a4003e98658c46538285f3e43f3bdaf370535633977f8118300bebf44e474d5a6 + +Count = 186 +Klen = 128 +Tlen = 48 +Key = ae88c3a96652d3764a00f8b2d0027adc8a709b77fb9311b3a9a7ba4973df8ca725aacb4d4a357e77423123fc94d6a276852880a3e979550b392f80e3e6c71932ed1a2732acdf13f9f3725d585fd48e04e3f26ef3a82a7609170b88f4345cde552d60412032597b45884b0e90d90226cdcf56cd31e1ae5ef56cc33c4405a7c357 +Msg = 230dd0f85a13fcef40420552de57426a687ebd6a5918e650c5ba880ceb79fbe40b659c1777537ac0ebe052fe21b2be52a101a948d756065a6793c111c534f66d00d46287def317752ef6736e5a6f522e3c9f839c323a79ab7569437ea615bfcfaa630a91b87b3ad4b08e50eaaf1768c8e06133ae9549a70b9645f59bb8a5bcd2 +Mac = 3d7a25ec84d04e21dde859fefbf185d63ca270acd9ad55a1fca184045dc2bb6e72c926c2ae3a84a35ce346cf02e7aebf + +Count = 187 +Klen = 128 +Tlen = 48 +Key = 132c680e41a727801bc50191466ed2018f0301e7c6e7fa50cf3ede29f6f4785f830174448eeccb35158e827a4c19946d34592dde6f3918b753887bdc3dfdc2552879d9af7e8d9e9f2d3c96e9fe02de80231565ef0eea59f78afbdf7a04c80798291bff17b79187088c56a4a70430998481bf13e04b03a45a9b1e72cbf25b316e +Msg = 0ca8cd24bc4a0f25a50f82c60c373279f2cfd0b53b3afa330f11bb5d812d56046e013f51a82d6bfe5451c9c5911f11195bb5bc15ae2953b2ee65ed3c8635f407d09e275e3572e5bc9521a83fe8d2d05926b2a2c9658c90c9419bba89819cb6ddf8268c32a83e05c72e27261a5a77f7a01d7089b8a88c36e2d25a2b2cba8924ee +Mac = 8447823ab1787fd753de41477da2a8e306dfef910e1476bcc88fde6716e9b724562c7d09c80712e3a49aac5b33f5a790 + +Count = 188 +Klen = 128 +Tlen = 48 +Key = c05e649d3fe1142330ca683ede042dd4a64ac41609e9d461ffc73c628da44c7e99a03471fefdbc35dc27362531f1b162ae227076c3309b37fd4b33ee919d4bb939d1762e3ed27c41d6d55168b19947fdcfed82e39474ac6c1ea5eb7ad61510e545f9121d2ae6ba11c9dc9f4f8583556cb1b4e2a6a43b71c80bdc4b4e849402ca +Msg = f1567c7dced30cf724c2a2463f98f32090492ec2ebb0d47df331ca72d29dad9a2d55650956b3fd73c4a5b1efc19b49fb63a4a6c0bdd39b9856e8fecedb2cfea5109db69b0c4b03eea60293602b293f3752ea9b897194cbb6f03d9836feabc395847598bb5765c771b2217021e30a7ddd446534a36db90ce0a877c032a6e0a372 +Mac = d056eacbba508214ba434d286aa0a1a56406a2e23d92d1eb9899b6896d4773dc255c58f4831a98e42adae1ccf8355d8e + +Count = 189 +Klen = 128 +Tlen = 48 +Key = f4c540778b164f86ec8a71e4c468e3ac5440058c22ceb1c8ef20cb82eafb1938237c558e42fb814e79347badb7a9d1d01f42d68eb837f678662f461619aa5f74449c6ddd915a83e7d3ba32b03b765966d0d23e0d197fde7c1cbe82a98dc993273f6eafeddefdfc59e064bd75b99923784e386590ad6e13defb15a7c2ad205d5a +Msg = c32bd69f97a5c6f36ee7eefa21b7055a4d8cbdd14baa5376638f65423c8e05ce97ba0b5e3d05af1f36a957ad3cc7add8704ef5a84b1f9e9fd66f163d1e6ce3cae223f04f90a124e6705839331ec5cc333d50b0346a7488256f1f9510b95ccce50d2f2c7976c04ece82bc3e95adf989f11e59977e91f03b92956989c3f7a5e8a9 +Mac = cbbda582978d51b1d033acac746dcb5c03ccf826738a127ac4bd049a67a26a900a5674e3131e91f15906426626a275f8 + +Count = 190 +Klen = 128 +Tlen = 48 +Key = ef4360affdcfd92d09596b1f758fa236413baa39240c07efdc99863fc2a37496a19a0d89c86337bc5e597102f69206c5636386a9ce26766c063a4711164c853d1dd551e15ae41119871e665468035fb6a373ecbad270951cd7256bf66f273f290bfc13fedbdace0d2bb0345ef26b14cfa872c3b55972cac6f861dc37f5bd0b21 +Msg = 931e6aeca959828765b7f3d8cbba8397800994b2891d039f563e4ff0ffaefe28cd243ccdfc7bc6bebfac06c785fa7f737b6c6c215280a45a421ec1624fcb810dcb1f6dd41c79b828bff169078d8ebdcc3dbac64b2bf2591d57c22739b1f12ac494f9432b90b9216e6c6e64bf6be0024bcfd9ea589cdbe8909e12c99cad88bff5 +Mac = 72de2ff4cf3f8e199a9dcd25b54688c0e5067ac6c985f1d18b4825d1a7332ac4547a6d7a87b877d943595ba1e1cad5ed + +Count = 191 +Klen = 128 +Tlen = 48 +Key = 72ce9cfd27b714419bde4dcd9b377dc840bdc3adaf5a734c0307af128834378b2a6a81252d2f0d371e2af3410987be76ec9d7c776cce1662c7afde0b0a696789846099f57a12046e1c417560b854c7062efbfc2ea4128d3d7ac8fd728000b46f67f70bf57627a4ef7e6cfcb210664383ed1e6b59beec7fe5069836d054bfc844 +Msg = 84b1b92aae4aebd81021b6cd7560e9a4df97248f85b1f8ee18274a214a73f89a91c8c03628005dcd58d6f208f555ac722b90a3d27b9402b9009b6857f7828e927e7d295a9c0a12368223a42310b8659f9b5ce901ee3ff40b8e5cdfc243f33d7dd33abe3d1150533c167292c9cf715d52b863bec3e699160f4bd2770b36ae4e83 +Mac = 8b2b909349d65a6b5a9b47c716a3696099c6806d6afdbbf905c87b18b3733e57dcbfd2a081b183716ac05c4ccfb8f585 + +Count = 192 +Klen = 128 +Tlen = 48 +Key = e89bfca0ccafc188ae7d3cabc8e90e3959c2169eeef8dc57e00930041ebd0ebf2c13c5ad6c7b58d29d45252aa15ac4f5832a3252b8e52f0fa5eee4c0628dc90ebee4c65283249963fb0077abb262f6817e5d2ab3bd640e61deb9261223276301a4f447b8981249e0d0957b58846a6a84524546e884db43f592523e22e7f5a43f +Msg = bc97d32ab16b7cf72c8d9d4960b7105b27a7ae753c801f6eaa6df16f8487e8f9d7f9952add612a3c737a8d4ecdf9ab6769b40fb84109b321457e16f708a58e05ba43e0d056b00e201c8170bb42650674e74d0d6448d0d07836cdc12cc852c8954dbcdba58420cfab10ea6e1926c4c98a89bad003b89b1f7965a21b942a553eb3 +Mac = d111d592e3ed96655f6b9d9802198f46467954bf63885a4961e4af40ab9816cf476e8604cf39e527756ead2e4f4d69ce + +Count = 193 +Klen = 128 +Tlen = 48 +Key = 1a63bd7c8d60023be7cb9b24498bdf07d29cef51ca6d8b8e20872a2c177049823ccf03119bd0e20932caf50fa620223d3565be6aecc35bac1a9de11c0473e1d9da062550eabd8cba144815e57e833938899d7ef2037949b29e54f33ca0a9207add514cc1e2efa756748b2331397dcb00b48d566f7758fca793f6881454d9af6c +Msg = 67c52838515ca9247b4cc741064937f802322e44d3e5dc1ed958363850e6f9ed74e6ec78e98265655bc70e4662f8e9a7a82892444d07c5798afd1ff9957529c3c57c9252f78abc14309f7b1e8492191e36a69d91205f4c36559471c206c45ad5a2aea32d411bb71a43ff933134c0cd45f3d6d59314947c3d8245b2fa697b940b +Mac = cefde7818c038cbf0bc0fc908625f4fa5b54c2becdc8d20921e4500d6d4f427db0c3fa007d40102e6b31b6e3d1b8d2be + +Count = 194 +Klen = 128 +Tlen = 48 +Key = 89745d553e42690dcaca938f860ea01b05665ae7f6d290124c8f5fd99de8b00dc84f02c4dbac6a5034f5d76de6ff9bbe5e94277b46c51664a9816ef9586722ec8dd9dbd7cf52f72b15f9d2682e76459460046de650c7aec22161f7eae0c047f2203970f4e1db1b86b7fd0ce9281aa78355dfb38fdd815f14fe548213fd9a2705 +Msg = f05e56198029c2a4ac8169eb68daf7b4f1ccb6f2037462444d1839bf220951ed71ce2e15f77e94bdb36e9a6e9a0c00b78d0bc27488c1ed511ccdb2891ffcb9f4a26eb84023f4437e04bde6e13c3271c34d1e93e97612aa082908da88bf465c876b8519216c5378ef87b674cdb512f1e1194c50d9343041735c10d8436aaee4b1 +Mac = 5238b04c6a3322a2df3b6211b56b2427095fc957bfad3a783527851fcf88a89ef4cc5eb53a394fa589b2a64701346662 + +Count = 195 +Klen = 128 +Tlen = 56 +Key = fc5850b25cdb1b94312fe03f7ca6bb315935dab4791c8ba5d2c9997a95fad98461230070b60fb714acc9f269e5bd7dd3c01bd7a9cf7c44f18cc81e6b47576cd26356b65ec26d178d7e9e9323da71ab6f784e2fd1cc2a5479d0660671f9f37fde6abb1983693c60860f766c7743086e8ee9968834566de2c5076afa9593183b31 +Msg = 85d09be10ad030a576a896eb7c4cbf6d3f6a74606ffb9aa7b519b3475210a81b03b7c5c9270105f423cf90b30608824269eceef89aa52379f91f2d2da11a9ff14b7e900c70eee464ae9fcdf26d6b9073c2218d6094207a21fd24ef7ef25f275627cc05932dc0555dddc2558efa9c736612b25981a59327058aceff208d07c7b2 +Mac = 7a90a3f4a47dd262f302d257d6acb916ff8192b8d2d4539119fd72c2b7812194cfeef34a8c3cbd32057a7477085caf7291ff7f83acdc1d7b + +Count = 196 +Klen = 128 +Tlen = 56 +Key = b1a85aaee55a9b2bf4e2284e663282a95c7e56448938a1357f3f17712c54c6e2a4cdf7ba218d550647335186ad92c4bc9a62d6430c342062ffac0de1ebea861b8f49ce55ed4caa4e96d5c6172798542514d0f6a5a430de0f3d1d33fee21ab73ffa84a828537fe42b663050abdd2d790d52317c135a152465c2fb537118cda375 +Msg = 7fd12b616030479e3066ee0a0fa6dc7d40b50b1a2ce6d6dfaa485e7a7d1e2d5e1e8f1917bd9f6bda825e4161185f31f66c6c2fcdb278b196aad5115321a83267ba9966f0eecf8f57521b85261873b819d9a31777923f30a2ecdc98edc07f8dafda56da96fda6fb3d2805820018c9b90f0ec089c1d2229a2bf8c3bcf2628d865d +Mac = df5c228bebabdd4d48cda20a869f12e6d44f1c881a28832ed4d5e404d91817e3969a36137f6c062e4c97502fd87f48944808a66be3be3923 + +Count = 197 +Klen = 128 +Tlen = 56 +Key = a96b6a8aff8fc36ae0ad65cf0e4f403c11a84d13d1d4c3fe64618e8e250dfd2206d1bb0b271f00eda7690868bae2c5f8fb88d11a0462a6b13c0611a7f15fe4d7a7adec2bafcd2201fbbb25d43055e818fd62a865acd222d8f64702b71cd59e533306e433bf22916e84ada55999301362be3dbc3cefad9e3d3a2c4904cdf8935e +Msg = 9728ad23a2b44003732c59791383eb35c502f2dae9986cfa2071a541b1c9b8f02b03538d4cf5bad922870f03707cd01b538fa1c925c24c3fa2f3066c49b0f473054ced5b0d328208097a3b6a76ba24f44b1f8850ddbcfd510021a0296f30a2dc6e2c04f4ad139e77702e6616ede6efa7f5d930d5d72d87168224fedee9f1cc13 +Mac = 60eb5296e3ed5803b13446c35995e25bda93b88b8819060e52aaeba31d53a43f9a768cafe2fc74eede8653b71c555449286a0b399bd0613e + +Count = 198 +Klen = 128 +Tlen = 56 +Key = 29c6a168c0a4644fb8ed30346ee159ebf19b9b11fe3aae4c2f3f1ad46f364d33b199eb49e2f165921b3ecdac1c99e913f618863007f20e922be35d7b31d2d19e8cb2a0274ba66ffc4c682042acebeb24813fb0cfccb68bc1a945aa44c92c5b3522d9690ae50aa914b133d000061f87a4fcd9c2f935cd4d63102ba7391f8c1481 +Msg = 5c99ea4dce3f3ebe7794910bffebfdb4786236714b091a7472478aeee87979d45edb42e330ac3fe2978d9727202b575c5d1dc583da10f13852218c36238afd1d0081b273e65db4e851fb7fdeaf601028159f3f1231fd4fa28054c41ec0b574cea951e103d89ac6590ca5f03894d34fa108b04d27381b5e3b62a8d9ada8420670 +Mac = 68639aadb98735b55c7a0ea4c02f681737448700dbdf350e8c2fd9cb02a94c9510a108849a282bbbb04d9d2ef04407108a68b728dde1f138 + +Count = 199 +Klen = 128 +Tlen = 56 +Key = e619cb4bb4a96f9c44b267be0637b7704b955897f9678d3b83a774d21816dbc11bdd5620d4748ebd65c3dc64ff87175e55f8aa3851a9e9c606afa566e705fd89362f7870bf1e5134c55412093d4864c33a0c269aa92dbc2a3edbaabeae4961cd1f5758c5dc6f5f084eac3134284248a8e11af54467bcaf6f1272ac5fd6aaae95 +Msg = 6483bb473b065f14eaf9c951066c573106cf4b4152b47c4b9dd74b7a755bd9c0185677758a905e41e488a13befb85f52f11a3dedc7eb13ce34afe63c79751761265cd9f12f56e80c422c796658c36ca58b9dc90a27a26a540321f5e112120e17359eca0253e1663eacee39186a13e7f0795fd8e29962e8a5b23460b267b926a9 +Mac = 1f782910a5aded6af9b64f81adc1ae2f924c12ef7ea10aeab47e837e2dd3fb7454d92d90676f78d65c537ab0695ef5fdcf45cfaae2621417 + +Count = 200 +Klen = 128 +Tlen = 56 +Key = 3e5b392c1da00340c8252126987148cf8725e9f538ea58af37a82d4381f9eb3b47dddfbbefaf4b115c57c48e6fc2d994cd8ff5f1e30b876b28605f9ca2095b01ac89444df65df303cd2fb8439d4cfce4b45824c44841b95cbc71c6981f4882e5f6c92f8b3b93423da513c4ee2af9f8e7c3e83e176f7237aa7a432addff9ca710 +Msg = 59a7b02ba466cd03ce1d50c3f0ca4c02dc4b3d1c0e7b9a77df9eae0bfcffa32117d7e05adc7195f4278c93497401629897a58d08ad7141ea52e0163f14992d7a284e7b875ce4640b4dd48ceedad1ea17d8ab1e760773044845e0899602f1bdfff4d42ab80c0765d1a8bde2ba0a830c050923956d06c80b182264ad19ae4f7c39 +Mac = 805d0f62925be637b1939592753902b256d855a45e696d7ba75053c790c7a15be2e6f4995f8f7442196c1b84550edb69fbddfee6226af31c + +Count = 201 +Klen = 128 +Tlen = 56 +Key = 4c74d1ab0049c5be3c75dddceb8a79b8866df80487fcce3321f4d7842e12ec3c6979b332dd54bb919dbcc8dab6dc6b286253d6b87ed9efa83e26a3ff20107dee1ef3775628551089d1ca9e554916e63f8b92ea0cd7d1028663822e7c4e98ab0bd5a9c41cc994eb2e406708568c80118369f2db077a2a3053f7d22102a0f59d1a +Msg = 6cc698b3204f51cc47c37a03cded00a0aa7935bb65607652d7a70b9932494e9142720fdcf2ed38d011e0adca56b776c5a25e202b86b360ea053bfacb9b13e1007e2aa0fb23aef88704c4cb11a17c3946c40408e40a1c49c99fc93851494e65dea85811b8bc79db18a7d79c7fb4268f4c99d3b58ef98277172dbb8ed244e02056 +Mac = 21062149d0eb65362aca8032306973e4dc673d61952d1bd25c9791b9f4542af7e061235b23e4cd369fdf77ad21db66f804ad2858ad049157 + +Count = 202 +Klen = 128 +Tlen = 56 +Key = dec973a8215ce8f9596fbc96738f561e23ec36d81ebad03f8ad69bbeb2ad65b8ff5ae9cb240ea35698b5e33849d621db8fbb90725ed3f57ec154ba9783243e692ffa70fd3cc19c3a813d85abeff0b3827e3f0edd68d1ac499638e88457d3b48858f230c4d13c7badfc4ec875cba5b51adabed9a3a37b9ca7f1c94c0e97806d1b +Msg = c7e5ede152c50a935e76b59979e08638a09cfffd01ac7008056a18ab8ebf8d347e955e06788ff6efeaf7c3b54bf898f2a10d502247b9b5fbed79a0fde0f761498c8060b63fb805222f8cd606bf69df4dfeab576770598099120fcf97983b4d54f98c3d192da8ffd5351e34b45d9b23f2be605cf206f39a8a7c15eea13ef51afd +Mac = 85ea4506f6d077324b20d06afb02cc633e119f4e151200130a96b642985f95ec5bf48f29462c8902b297854428a19b5f5a2911c844b57162 + +Count = 203 +Klen = 128 +Tlen = 56 +Key = 56cacae4b595ea3fb4a8c5b57c14731179256608614c95c9725ddad5fbfa99111d4fa319d3015ad830601556e8e4c6d012d7da0e2c4f60f1605f6e4c058ec0f46988a31bce1411d9b2461e0c54f693627371d8b4596d179618439e2c1458853fc1dc918faeb8596bc3c1a780c73221ef245929a2ef9001df236f331d2d403017 +Msg = 5fa0402a3a131e24cd15291be50fac77603d8ae53d6de844f50327c20e411542edc56402ec535b7aacd5cb87ada045c81bf98a48ebd8435e27ecf2d286de294140dafac3204caecadbe7b94ea0ecee27f0a9f0bab040e9d77da97ee23ffa023101e6e9b6008480de0152dcb8e87a105a8754a481b42b42779e44b13a611c08da +Mac = e46e5c8450f6a06ea679347b98811bfee1910dd52820ba6c01fb8090d58e5943466e660efff61a7ac1b441ae954b0067165694777d4d2071 + +Count = 204 +Klen = 128 +Tlen = 56 +Key = b6265ae2d0a6b68022697e2c4ba3eecaf1756caf6107555975d7fc5dbb51f0a0d39f7eca19c277f885e234b2cfe2d61cd638d27042fcaeab683e05876f9dd1aab115ea1d6419c9ff7ae2927bc50652f75f4c848e49bfdbc152013b693be208f01831a4c1f9d333fdca11a2707836e7c3565a8af3be796402fbc8a7ec66481edc +Msg = 3250d12c31d11a36acdeb944fbc0e58527aa1959a29a675536800f8e3ca250140e3f7ebcbf725523095a8def8678ae58235826e8d374997e8055789947fbd5d3e47f76ac6bf728893a9a55fd2b25d9460e7d121b569536a51292eacb1f2d10b29c59e0849f263a7126e63af4518e0e58ce5f047a94c5e7d0d47f8caa2c00a8b8 +Mac = 7b74a7ee09d02964f3fc34d8310742f7c2e68bb02a5f32e58804f9608dc11620c225fb0d66cbc9f3a0d2c4cae1d48853364ec2a34f5a6a22 + +Count = 205 +Klen = 128 +Tlen = 56 +Key = 36aa473316a8b206a22edc8e33457d39ccee612e45b7b186a98b74b9dcce555681aaa7f81aa3a6757172005838109492ec11796cff3342c0353780694fef89f8e79978a89b6b75956d6f37286a91c6d68af7860ad890715fd2f0a413135b1db92f1fc32ddf27a6cd5ece89e612f19e6d6f4890f019f6c6cb485ee79f71399900 +Msg = 7cc5ef15a41facba5b47876cbdfe0e0f6c6aa30d7a657f4c891bf75d30d4fdf6a10ee9a289cf7ab738391788025f5bdde557d1a06c91fcd9d2669bdd6bf42ac1402aac15f91fa8cf01a87286e429abe1fcab0b4e4c2f5ef7ac42cdf227d25fb7a140c0d8bcb640ecfdbb1ecc2b050703f88eda7fe4eaae8d5dd716042b16a4bf +Mac = 651a25ec186b3615f57d925e735c11b9ecc8718cf6dc85c31d991f1e65380ebf75441cbe33111f93684d529354b919a43025420859f629bc + +Count = 206 +Klen = 128 +Tlen = 56 +Key = ff333ce688f621ef84fa6a52e47d30522c08a7e4d345a31be8105be4fcd06df33b0823fddc29f528bcab4fc0455b942b95f7621fdcf8181206af95f29b934317e3da55764d464c171142c0c9152d5d140ef62c6fe7e913b366c8a0d00d1e02be3ed058b7a3f52fa4cde745d51b9a93f4de2d8b3cbabf9fe6508402e41918b2d2 +Msg = 6cc98be75b168e5bc9ad673a30ae01d275fa0d216da2a5eaa09f2f084dc38503aeef53e17c87c03eb623509f9f87080406d6d4bcc902277d9c87e1b40759751aae1a4b88d591630c23583c3ca6d4f4ca186ab05961f03e8f5c62f96cded7eddaf5b33c856d1dc1ec99b4f2b9507d0b4d352069a03b553348699940d7db25356a +Mac = 77294f4cc025128e50ce07ab71cdb6017dcf8247759e1b59632aad789600430c970cfbff31d9f635ff58b149f38da5115ae339a0aed6db4d + +Count = 207 +Klen = 128 +Tlen = 56 +Key = bcb8aff6d0a89f2c5abe7f6372824bf416cd072a7ad0ae5f9f596c6127520c1b688ab471bfb9d06b26be4c96092a06a756028362d4c1e1bab59d0c3a6e0b35a3c68580d72d8bfdf550e8dac6ea36d758dda4f9e881f783053ccf22f3532c684eff307befc4270f14fec491babdada54ed23bd3852a7a7d895b7815557dbc8d62 +Msg = ef9486bfd96e72d068b5003d15100a0e19e432e8d2256c83676cbd5eaf4a42b24fdd73a423a0a9bee087dea0f74cb4f3bc03b99fc7f5ea3e9aab76d08549c4b0c71eb6c7f67830ffa1bdd4fa33b710051a305b4729bfbb3e3be18b6d1a4b7b4e9f7fd88e1a9e0e79f37d6bb492fa252a7d919f48c02ae86d9235849c35f97075 +Mac = 4af995ab01e4d303884ffdb72e2ded3b568c6690dffb7eca47c021a567469303f7c3979e7e3af24b9920ee377af4b8072a8a64c56650e0a0 + +Count = 208 +Klen = 128 +Tlen = 56 +Key = d6d6c80c2890d096e581c98d9ccaddc4de8d360b4eb0b70df8deea79e4cf3a60eaca63dfc76826fd719a41d6a8ed9eface0dcb10f888aabf45d56ace6f95b5899f182b67862310eba9f141c8fc776d48b3ed81ee5589645b128ee56e5685f2af9eca0aee8b4bf427348db2a9c1f0b177363342ef8c3a4ea9060f44a2c228579a +Msg = 781f396e34e537c4853b9e91507c2d2fdbede621eb4d5a4929ad265bca82be926ff969a24a8a8ded83d02df9da98b0228d38e48c7c22425c8bb87428486214abcedeb7bee9d82a847abbfbe41dc63b3c0a62835339b33590ca6d046aa3e9b7205b7829aa57f795ef32a31038622f57e51914cb5f6a29ba4dad73e00b243e2e57 +Mac = 786a521200443143a15a7bc18abaf01dd079d67f11b9b4562aca9949cb8fee812341e745f98bb3a2718c3e58bd4af7957e38b782f21a4680 + +Count = 209 +Klen = 128 +Tlen = 56 +Key = e58fbf55109e26a4d95dd60d754140cb8577af913b7786c4bfdcc8e7d173de57af92953839ab67af5320fb518b59efdcfc15d42571fd7a52ce7f6e49acd9c26944740c778e74b1dbaa8d640c7e18e949a1661f8a77543db69e1f5c16897a360a6bde2dfa57228f90a54b182497a5b8783d1397a695a35756f7659934b07ec2a2 +Msg = 629667993c18ea3639ec4cb509d1df73ac96c75286ddafa4b520bb4ca2f1bd1fd686ab911074518d94bb43a4c503166af625cf1d7eed9c880a1fc22738b7d78c61753101b5999e6f8eec557ffeff2dfeaab70d86dc09a45bd3035a935e0c867aa96ce134560f3ba4cf856c8ddb4e8ef7705569d5c9ba2fe4b7d46ad63c7732b0 +Mac = be4d9e32041a8af4f851c6fbea171a41e4e0967da0b27dd2c34e23bd3b94262682f15262e4031579698a1ef5c5542ce6407d59905e27b590 + +Count = 210 +Klen = 128 +Tlen = 64 +Key = e9e4480d1c4a621e0c4e1505992556347a7ab34fd2b289910474766cc969116f8040d96dc5f66cdc4454fa7bcfb9f838af19195038467ab8a16e1cbc12e598e6fd250e21b2145f1e2e859cf73400be12a0c69749f7100847429875351d5a76970b9ccf700c2ca3ad72e9e4c0f0840e8cf488158136989b0891f867211350134a +Msg = b82eefb2081bd14dab0e9e345248a34ade73f3291886b91ea3e8cc742fd884f6ee0ccdaf4c9879f4db12dba58cf491af2541a1d5ef6cc8b1af750ef5d8559ef7ff9cd56d8f599974be3aecd8c0f4c08f3ae50d86f9f822a1e4ca39fd2f0b4d78d22630733a24d8d63ecdf9555411daf205a761c39ef46ff6292e74129bc13a7f +Mac = 90093bdcc45da7338bd2efe92e30933b14f75582739c747f7572b3270b104f33af0c939e3c8ae53b2066fc8c97ccf38785cd2ec3d79e6946499d36121e44a3e7 + +Count = 211 +Klen = 128 +Tlen = 64 +Key = d3fbd6fe4e356ac1c8c120d432d7204d9d579b2a5a5d0c8b6016bd1eefd38dda735cf2f0ab873afe0a0916865e8b58a0af01fceb6a3765c9bfaceacc47a4916bea791afa003240d9b6563bebb3038949fc3aee38157dba596a9c4a20edccd187fff95904945d04b8925298e97b643ab24cab7af9a55890a2298de5022872d697 +Msg = b967c7d9c0a941f02e87723cf282eada4347b28193d3e0bfbeda6985886a37e646cc7b1cdbab45cce677528b3a0c24a08f8f580b779935c79398814d067298592a6bbff08248b5a2f0b48b0d28e4b6a2657763ac5ba00a8d6c86464b1eebe44ccd0c395e9dc9b9fbb306c6caa551c6682ec57869272e889ab26e6189b91f4248 +Mac = bc9a83d782e50ba5a801146f8da39095d92387d759eb4ad52bbd9e99d9f68f4a0f6f6470c653c45979c2e19543804ced592ee9c53eb68a5b1b7746ed403ebe67 + +Count = 212 +Klen = 128 +Tlen = 64 +Key = 19d4cb1d72c73e2577a23006f31466ff777b9582fdfb25e8cbcd34649adade35f889bc20ebd5aa1ed7a2ce52a151d63d1592803585796013b3d5de2df2bd7e84876b643e554e1756ba5a8592b4a347b5482a27f624f6dfb28367245e51c8e3bf8f23cb5dfa590b35e7715dae723143ced7eb90ae209a2b2b012e10df00239750 +Msg = fd13a5e109ee583bda183ab64e4d27855bfaec17449f14991378febc435c33b8bde5f79106d11e98b6a821362c9f71e580bd0b7fb93c4dbb403208f49571d62d41abae530cdab5c16fde570a4c6897f2dd18a3bdebe2acad40b6f4c65e6029d471adf1af83cfc6beef0204ba187040b45a52dc5a4159d876f94cebb706f2d3b4 +Mac = b201720661830a671c94421958f73c8b666fd8a323629548a29afa163cee2ec24a01201d901ccf5b0adb1d20fcf0c5ea1c7483fa95ffa0a9590b970385d5779e + +Count = 213 +Klen = 128 +Tlen = 64 +Key = 69d9440047b29b8e1dea08482a506d9afad24fffe9ef7f18e36ff9ff6d510cd9e905bbaa15db646ed6bc9f65341869aea51f82178e341334079e94aedf81eddedf0ddb9a53f6964fc724b1500fab416e8afd41c9a75f35e6a7990e01a5f24ea4d45b6c7809eb7a5c798b05b4c3f33d0331d555bd3a572d564cc72f9fc98a7752 +Msg = 18ec13250ee9c74c0fc4dd564b3d24a825802d5ae402a53bacace115ae3bbb329be79d1e5e42dbaf0a6446431145fe49b86a8703c7c41f8985d54f12e314c16ff89351d8addf66ebba2783f2d1a11965182aa0b0dd2de53586c5a695c6265c2b173958da648611090557bdebf11a1e042f089fe98e049f4796c60d26be38356f +Mac = 921264559658c2a0f948d13620312047326ba3ab84d1795c9e438fa76daa37ea5f16024306be804aedf8f91b586987254bc0ca8d64a79325c46b2f0b7371e3dc + +Count = 214 +Klen = 128 +Tlen = 64 +Key = 9ecc24e4faa8fd520aa9a49cab88fee7fd39425e13ca502eef8d45d5ad794c9dfeceb763d8f84e9d6cb6e69c597b360e1f15e7c6d68ceac0204d0e5f5c87d2fa1cd67797d91f5af6e6bb81d2a3d77463f31a4e27f08913e2dda844e45be2b18ae02b8f0766e4ca6460ff9dc6f2635ff06192a008c989749e0ee80fea14529255 +Msg = b85c46b5d55b896d67b87ac3313a97c7509984211ed80b0357d4615c7a1eaa4f7206c0e376f830fc2e0c868a17d8cb0028894b08b6329c749563db7880fe3917ba46b6dcf6392dca752091956e647613b2a3d3ed9003069af6c6188eda1f43aed844b1081dc587c1831c224efd85a0e73610a33975f4515cc426a004512ad0fb +Mac = 9088a7ca211f69835b3786789afd93f3704de4a34116ec5cd5ed0a43a3bd611ca08619718d9bf287502bfe07b6d79b3b2ba982f99442752aad29ec23856bfa47 + +Count = 215 +Klen = 128 +Tlen = 64 +Key = aa42b41c544fa928b2f3c7f12c41e5c56c910860ca257cb3080c24e440470e951a2b4a694206fdc41a05b1d3ac55efcde2891078f93c50ee33f724a1cc55ce9d30642e0d6b4fdb01e13a726e3f6e2e76b1b6b9ea5608420ef168d09ce10ad60b53b70710b6716b666f5ab3cbced2ca4b41e0acc0c8d37b9aa929d0dc65af4f67 +Msg = 2b1f5c46d4b819bfa1ede55a14077644b642aa3963d177a6e823200bd065afa47a489f486f04d991f39de23dda6452d49dc2888bad319c69078b95a80987dc5e8480f15d12795d57aa5fe846718d0b0ad396a854d33ef9c49fc9c74e6879dce27052ba4c65208d59edbb5f3b828a8b2e8046745c7c0076fed8661dc594429578 +Mac = 16d83f28f335f8d876b2fc85512159147f4cdcbb5c3ace09367d8f1b557bc977cc6cd31db4f93b144302f2712a05fd964f21f5fff11d28b703b9de3a01f87764 + +Count = 216 +Klen = 128 +Tlen = 64 +Key = b04cada1712ceb8b03c37c11034d7f6723c5d185cdfad3d80ae56e37a33a5418863d88046ad72048b6e94aee9fe08deb918a519ad128a26960c431d322c49b8e3fc0ee05ca916a08a1aa84c294ac31ecc93460415ef7c8325112e5da9d9b3d34a67ce88cd7814f338aaf347728d8f3d2916c0762be92cf99a57792365ce6c274 +Msg = 1bfa498a685e81f725583a0f4fc5722fde8c01199b23139a3255db6a884286534ea76e95d75f918a262a41864cae1d01f1bb3ff830d3b790a8ea38fdcf6a12a28a7a6079fb8083b69ae4cfa7881883df20d5ff93cea7314424ab519e2a97cea1f6fc88fe7dc83fc4a90f4b3bac0b8e109361a8b31ea569fecf218c1741d2a297 +Mac = 175e9a5606934304d65f5a2357d074b3511b597afe0167704aa457447a7015a02700f9c00aad116217b27daa9898c6c1e134e7624a7488c3515694b98a2f6ec4 + +Count = 217 +Klen = 128 +Tlen = 64 +Key = 95b203c6488fc5b5215aa58c6e34148dc277cd1552925b139f14dcbe55060488737e654dad71edd10fc9b069e2b7e7f8d34b391d52423aab391f325aae7d1fbc4aa3fd727b59449f26fab39d91cb4cef818ba0779f4b4ce92080c480a5574ff06048539b79eed307b016369043164a5a1260888a01569ab69e601a99043c9d0c +Msg = 2ce3453903e4f074dfe57499a1506187f8287e79849e0e373cdf538e0d3151fdc33ed4b12dafb4b47cfd5861ed84791ba8da283ee75e13565a14048fcbb0aa6dfef09cbddb2f9bccce3817d66f58f5c15eb7900b71e7fe0212be9433e261ac24a3a2a546548c2c259d3bbae26ef25ee3e467bdc96c6157a22a850c609c6dde8b +Mac = 2302ffdac9cf3b7e284d80fc470ed42cac01d218fa1b851a4dc3edc80c2f3c8f239280da93ebcc249886bfc08c7f0bf22defb7e447dc8bdbb94093cb357cc5ea + +Count = 218 +Klen = 128 +Tlen = 64 +Key = f84d1361c51c3e50e245848383fcd37b2f7b0fd916010a7fa41bb1f256228302cd0548ae2148ff42774d18c2d6d3e38b36bc4938da13bac3e04d66ec17cfb0df10b1df1178c2176ba4cc89aa6e19e606403519116ef635e3c9baac7471f0c349eada42537290701492493e03f4d6c332746fe82e79b2652686e9ec500c8ca389 +Msg = 2bac5a6bd9dc5ee714606e2262bbd3d3ef73c9d578688321676370fa40f2bd673b741be63370c25fbe2bb5579e79486658d3e0eb22aafbfe02fb70a63524f74ccef6eb709f0b4f9b5c591095fe0889d766814c4343c82013350b4610337b01042a5a5571e6550e83361504444b119e0f62a69547a369fa4848bc7b9e019fe276 +Mac = 5f3422f586e6dbae45ddc87f8d04b0c88152f90fabfc6dfbb0ccd7edae37de528460a7bf16c4c0521355d5f28c88ffeb55986f8b919feb756693b076c1690d5b + +Count = 219 +Klen = 128 +Tlen = 64 +Key = befb1ce10b50a8dd71468834cc5c1174bcc1885f4a67e49ece59d6b3104e0730ad7ea126bcb410e1b2a50ad28380cccd0ac6a775ab5cbcf437df04ef0f3793b88d6f1dc69fc3b963b5fbe5a5def8ca9f2d8dc2d8629018fdc6300fd25788256e257598a8fca52acd43f1219424ed9353eebde072b72a802045f5ff462f6a45b9 +Msg = 1283748593d539417ff5701cac703c3dfcae39608382bd14ec005e26188fb45d093f6067ff5c4c14e04335c2dd74671953e9c8f8efa618ae1692776e848528fd33a294ae7ee792908602e5e6d56606d7419f256713e26aa669e98027d9fe54b457551a40599e921d39db8970da6fa2e18e785697375f3a63adae803b6021c1eb +Mac = 6d4aa62658419fc842553c70118d90da3cb2a37539dae4b086b4a7f0303dd9c5f5a82d1a7700fbc1d5309a7f668bda06ac53f6f77ae26878bb9225651b1523a2 + +Count = 220 +Klen = 128 +Tlen = 64 +Key = 21251ddba377e48fa35ad148389c486a84e623f3dc49f9af281aa0af8d00f0f74a4bca77e087593d765198e87b6a15608d0af4c49a7736a445d53c718b408631a618c177319c01938ebb4b06852656392daa926e10bd6af68a57c6a47203d583fc3509c4dede63fab23ef08a9cf9945c2c6e06d786441c0dc04549328b706453 +Msg = 41da7852d48d59fc2ad0fffb9d64b9ae213f3266d5d4a2c7d89445725eb50de1033294915f135467daee1a4dc1aeb81c9a93fabeb57adc94045ffa152c2048b8dc8303145e7be8466ca7a394441c8a50ff648bfe1ec663b966c811d2eef38bbb76d6af23fa4e7c63870482194e369712f7bbcc6e3741a0fea5da73f1c9b73db0 +Mac = 41a4c83777750d4fea58645cea32ff4456c44953b466a5980d2b8da234603547a6259188f8693649dcef85e85110026c006ab968297567ce823965a1df6701fe + +Count = 221 +Klen = 128 +Tlen = 64 +Key = 5d307655cf8f7c1b3b573bd75e2374942ee3e56b6b2578ec7793bbc067bc908d5a17261a094427b4a09633d0cdcf8ef1162a15cc6f9f77aa0c62a10f74ad7a99d7bfd12aa125934a4f3842c681e7a29d51b6b61de407ea4a3e98927f5b4e93587b3160cebdb729a4ef454f03a5f31a618890aea7f1e63b92b73e755945274491 +Msg = f91bc92f97c28b011e7bb1dce84cf9154942094ab908b49635b87906e2f14c51f42a9ac3ce46877b6a687ad6fc08db2bd2471bb97f7ff5dd381ff4897eb636f1fe4d6f87b5fa302a57b26a9af25f2e30ce32b6cc993ba90ec0379bc920a9d3b4de2c526393071176ad0289111278788c06aee36b4e63579095a875af10f2ae03 +Mac = 9f5c4fd863f070b85d29b933b1379e7023335b74aac37186315e959473bf2b3c0f1f893e1feace27dffe35be6c607a22b02d695e41948b3b6b2bbf58ae7ae84b + +Count = 222 +Klen = 128 +Tlen = 64 +Key = ffe01cbd0ef36a85e32adf18931c4761709fb382228b27bbf9c1938d816c041f57871ce03ca0c06e68db10b720399c5e8b1ad460c201c1f72698f3bef6f4bb1621199ac958c1f8ee6859190dc74d4e836c856827e430722da3c0a04b9835821b049f7dc18bde7ccd8cade363aedfc599bbe75620b29ea3271741807c8eb9c2f4 +Msg = a32d2fba17f4b0f08a9ee7edeab34b1b8f7b12ad6e65fe248fa97a18c12de5358ca62e8467ffa1eb2bfe00f8c825d6da36d608b0afbbad071c651f9dcd33526b6c7665e334d277775ee8bc5adc31d08a4a2d4b0e22be957c2fcefcbf443803172de6fd61e637db990ba3439d90a1e234b2c8024e2d355f8eb02e36058e04a041 +Mac = c1437541647fb134322fe4809de516ff2a9982c16132077dac91e0e06f14cfa943fc8539a22c91faa3fa8fe623dafc954ebee5c17136281e7f8a3038f58bd80a + +Count = 223 +Klen = 128 +Tlen = 64 +Key = d65a384d328a1c8908a53151d8fb1e029c6fc44958c2728bf314588445a73f2e71e777e475a710c7ffae4d61837255888a232c854debe27682750af176ac6eea5cc501d7e47f151110a9ce7e44e5d76d9cad53c1819317527fcd169051f01c6a3efcc06ea9999431e3a09ef143dd0c79791423451f4179e7912464a9fffdb274 +Msg = 0f280564119a83a8482f57b7c20b247171a985d8dcc55b17157966c4eba613626095952a5ede370ba589f1ef08743940d9f41baaa2bf8c23150afc2946ee2a4b18103cebf5810f42c3e3cca513cebc069b725dbde67db5894a3fe6d11b0b03301ee12231404bb25788850f614be054cb9f68719811c57d4f9b5f4d44d0c64518 +Mac = 9645b0d953f9f91de98ca15845b7edc24434d3a247c1eccc99b71e9a3c3ffc79e94ac59ac7bb6ebfd10cc7645dd9c8449ce36bd1b4d1eae96de857cb04a76c0e + +Count = 224 +Klen = 128 +Tlen = 64 +Key = 69a9f4e2dc0ec5a720cb369e9a7ef804a4eb5254dffc1567ca06d2e0944e4ac72fcc2674a62fe9afb021221585cbe6bef09c7d1ca6465c26d60a53b6013608300ceca4659424ccb781f4d37dde102ea9e88d28a864ead78936504e62301914ef2890d57d4df75806bbcfb19e4c53b80db146b9bec2ee6dd8136129aac8ff564c +Msg = b9c8680ebb44ac60adfb20716c23b7bd9ba54908f51e888de129355847e094f1a3a01d3a580d749a46569b5b9ebb6751f54c30bd98f3cd7020b4bf344634ad67f87811e9acf03039f4b44fda520d24fc4e378b58c7657a5c870637881a47c818dfd9ace35ff4c883de9ca4b63023d704ceefc0a2297d77973ea6031d6b21ce4a +Mac = 73eefeacc31d31fa658517504322a759664bc1a94c3f31ffcf333f678d236c743066f05f92c99b30141a13dd65d0fc9881145af6acc9bbc446e0194d68b64977 + +Count = 225 +Klen = 139 +Tlen = 32 +Key = 9ce66be0e16f03baae3567aeb7ae8400fe601499999c7b5ab668efb0dcbddc6974f387c68779f1d1c9c9fef0d79bd6bbbd598c0bbbd4fe534935fc345836ac4bdb922c4e86b97a57d5c9917f51bad5af0fd8b1b379777f9050e2a818f2940cbbd9aba4a0659965f5db1d6883ad724985fcc6cdba5bedc7b9d6573c85333fc561772635e5ac807c52e2adcb +Msg = 6456643e93196695b484f8a38179486c3e3b577a9cc800d2dc69362837878d4f7ec0fbf3fe3ae08aa63745886cea61d2ec8a627652a46a997bb5d7b157f8c7f4927ddb0f737b3c1c04e7dcce7345ffefb8bff90d787439702912864f78a78943e7b48cfbbb84813215bb46de5f3227aae902a5a7d4df753e30a8cc6a613bda24 +Mac = 27973b3457c6bd4136a33ac61d41d5dd4395dbd0487da65a0e4eb369d9482d2b + +Count = 226 +Klen = 139 +Tlen = 32 +Key = 8647453889476b944eaf55b97b9a7bccec873657556780fa29f4fb5ebb45366ba49f2bbb648f0c4e4c353f7f9be3a736e7e72560bea45e9c8ee8bf37c279bf5b2ef16483adcc093208c05ee51a4db04632946ba2b96cdd9d15b33c25cce2eba4ede4f97aac29ebaa4cf6bbd342ff2063973710078ee7836687fd7b0e23a741aea921f187a8cc381dde7f5d +Msg = 8d4f4a896a5d6f681c951da1eee6143cd83a271750fba88762d5214203be447da334255101c6a76343d634c4469db2163370b2f15341ea852468e580aca4f9320d5c7aee5a2b2db4a99cff0e6932f738f6ac6a836b866efbb8c39048f4eacad2f44faf291c93e9a3756ee54700accde94a76b79741d31c34466f8b63839a9ea7 +Mac = 54a6fe3515e84298c9e3b1f2eb6f238fad2cf61f4e2e9686464e087ece4567c3 + +Count = 227 +Klen = 139 +Tlen = 32 +Key = 6e573e5984bd566a807c3f800da68f65216697b926939f2f588572f96e281e807c4ef559184ad774bcbab4976ba44c0b97c53996432530a965ef84d98e80eb93ccbe850cd0ab1a784c3aa47c9f610de5b46f399a27a047cfaaee147ca82b010e284df75cf309a8dcf9a31717f1045a5a400d9eaf1c2b6d0bf12b2cc90350e85756a35230cb8b070a8b9d15 +Msg = 35430b4881fc4991db8b046d64df7bef6d53afe02f8ebdbfbca76a06368d00af3fa759f7b0b739628e04e1ff3ab8e0ede7872d1e5191735bad8aac88db18f12ae37c90269f7560cbb5615113c9a64726f050292067fc341485f49651ee9b38e40a0cdb5eb5fe66d738eb7e32787158a36ef8cb6fd795aaf32d2e50e8d5df7ce5 +Mac = dfcd236af05c8204f1e68ea0a389499cf7601371ff190c66228752289e1b11ca + +Count = 228 +Klen = 139 +Tlen = 32 +Key = 4f48222e6c000f73c0db3321a59fd4baa7710d3bdee1c4447b27dd78a0acad2775cdb22b78db810f1466ff7776bbd4bb9cab1dd6ae8e617f9288c795bb0b86c0419d9c5637dcc37b39bfa18d441e3fbfca75bc0306e5432e8e7b3a5627b5bc7fdc424a77520abdff566e7f2bb8d1fb0c5c57528c8eec509896899e858cb239ac6e442258706d58e393fc03 +Msg = 16a5c0cc8104031e789c05f885df407d931b9a8d534ee639df3bac7a9ebd2d22675ca212e91ec5ae4a9f928e0e644f763b6dca89ba09e2b901ef4882ef8987d8f793425e81e5bdd88d8da0e39a21f7e4c6547c3e36c619c8b821a97ea761ff76107329161202f5858b8eb55ff1be40ad7df739148f2d944c4ef955d48eec9be4 +Mac = 4efd257f9e855323846b91da50c392de2bb9a29ed31970c3f01dec6dc37da66f + +Count = 229 +Klen = 139 +Tlen = 32 +Key = f82e2ac9e2a859aa38fe8fa0d4f298130bd68e89e0f2aa2578265b6eced19553a8f16c6bca8be181694dfc4fe2721b8aace6891f8baa52bd077b56931dae9d5b345fea9753ca931a90f98fcbcca0d1a69d45d4038ca3781b81510cc87b9fac8c84c1cdd5e52f167f964b729bf844636fc63b99bd49a5c349ccf1a595506a6aef815e3cade88013b8618bca +Msg = a59077774b861c354922c7f7fd5a687c7a034e642ce7eee7c017e0c73e832a8378c7c1cea8484d3f55802d4a7696bb6fda32d1b1c78f8c4ae2d24f9d4e9a0b6c18d8be4bd3e13a557fc1281db0d24ce8ec8e0b1954a22aec8643d867c3c5ef8e4d6a77d713786cdd908ec058f137a44d76c004821a4750357615820de32e5d51 +Mac = a8c446e15a39765fc932e0db9a715119622413522a6fb5c1ddacae1be8e8b9d0 + +Count = 230 +Klen = 139 +Tlen = 32 +Key = 6d5f17f536140d17073b062536e893f982e91fe83e582df6b26ce145be94c2d4c0c7be66b8156fbfaa839c16441503c8c12c554a0d1283612ad43895d250a6e35e8e86b2e6545a08aaf4f6feb0693e71afa231fb2c1e2721e3b956ce68c69b010e5d78c208f6595ace371bc3c30bce5e14f4bae4e3a2a19fa5c444dac81e289699dc9a7e6626f11ddff413 +Msg = c35d20d1c500794332b0c1a1bc67dfc033c4c360a8a3aa5fd2f19d2db1bf3b807094b949900827e6438ef5991692b539d3c42227a6b362847e9d88a1b6855db7f58760d953690b26bd7258439a7f8409ae53137a3f2f14fa77a2a6bc0aa3bb7a19dd1c69554aae6c6703f3879057d3978c1a9d41bd3f492985aa0064f43fde2f +Mac = 5dd809c012393f579be168109ca60d1688df32bc5eea2024bddd91cd45ed43d1 + +Count = 231 +Klen = 139 +Tlen = 32 +Key = 9b0e2154665d5e5b57bbfaab3fbffbbffae6bc1a51e5ed391f3edbc6b312f10e76367fb5cd89bba841840654de127016d8a27df2757b2a8726502b42f71577d32a1106dd1f33d9f278a93cbe7aaf4882b5a5abc5e765ac461ed369341db663a101c63d352405c11f42532451da3d8bedd717cdfa704a7b5c4dee1e03eb9cbf62417dad23a4a77a19e8aa47 +Msg = dd2efa4b6d340de657823a5959b441ab66bae0f9412201d04b9532da9aa555bd4ac699401899a9b02c71238237104b39beb1018ab64cf0be50150959164530f9371e34801f2905754bc321a85cd750156aed910b9a64548ef3fbe9f96d9739e84b40b454ab6c8a005c801e14ef94b808117679c418f29506db51bc03c720d951 +Mac = 6070d709a0a26fb5d4e3a006f9913c4d5bbb1d02e6008685e006b1cf7a4783fb + +Count = 232 +Klen = 139 +Tlen = 32 +Key = 6d6017f05b66ccb88d7011068fe678b12c7bbc1a8dbd0362a5ea60dacc069cbba92a3618561fa810bf2cec484b2b3f99bfe225055f91adf056c8f68c577bf29685586a409058426e2195ff24795b863f5581266414fad9371ba7c7cd796f0c63c792bb50523a23387d545183609dd60db500ca1ff51f109fbe30dc83780a738b387f3230e4edd2d89910ea +Msg = fc46e832af596bb15a22f89741e09d4c7c61c12756d3ace1f4d84a4a37d82b3ae29bcfcb001721c58086415a23bc861498b8c40be579ca5b08132fd5de014ff545bd90147d8eeadfd5a1a608835c653cd3ef6554842c00cf6e98758069c2eb846bd3b377f067cee79f9baf092a6741ab762f2c6afc9455256f90a3b29ec209cf +Mac = 1827aef6f794fda16cccbb3e1ac5e9b84c5f4a5949e313f7443b9d9ecb785d7f + +Count = 233 +Klen = 139 +Tlen = 32 +Key = a6ec2b6448a36dae7f0288fa095dcf5c778e04a334ea79e6c374765f4851db7c4a7c0634b7bbf79828d2b2aa67f6e5712f84cb4d32f350896008762f6748f72076b32c6347af2dbe5c433a8389855aadb256412bd64c777c4cf0b77c4d2a967eb3f9659a00675749a2bde72f76f374378a6a2ee527de36e80f9601ef03ddfebe88b67881ebccbd6083a880 +Msg = 89745d553e42690dcaca938f860ea01b05665ae7f6d290124c8f5fd99de8b00dc84f02c4dbac6a5034f5d76de6ff9bbe5e94277b46c51664a9816ef9586722ec8dd9dbd7cf52f72b15f9d2682e76459460046de650c7aec22161f7eae0c047f2203970f4e1db1b86b7fd0ce9281aa78355dfb38fdd815f14fe548213fd9a2705 +Mac = 857877efb8dfa0d46601ddcdc52cdbf5fc1a34735d36773008d190dcd57c0b95 + +Count = 234 +Klen = 139 +Tlen = 32 +Key = f05e56198029c2a4ac8169eb68daf7b4f1ccb6f2037462444d1839bf220951ed71ce2e15f77e94bdb36e9a6e9a0c00b78d0bc27488c1ed511ccdb2891ffcb9f4a26eb84023f4437e04bde6e13c3271c34d1e93e97612aa082908da88bf465c876b8519216c5378ef87b674cdb512f1e1194c50d9343041735c10d8436aaee4b1b45d7c413b62da1725a06d +Msg = b5df01a9bbd2517946829209dd27a6019b3fa763858ed8b61a64db652b1e2462ecefad0e4ce1eb5d82160235e85435180dc1a00305ea2996040ab4742c8a96eda2c44cdbe70c6ec966f1de5b49c045ea914ac06e66e7d6a1abbbae61d6387e56ffe447d6365dc0051a9a8f41a873bfbd50646f6b4e8ec72037fe31f3d232c5e6 +Mac = 0485e3bd7dd2d8fff30f26c32c60a04343f22d7b4e90980a0819ffbfe66209fb + +Count = 235 +Klen = 139 +Tlen = 32 +Key = 13ade41b10d936e3bc007d1f1ede120e8163b7c0c8b78636017c27c53d5346bb9ea14445b1932d90fe5feb2fdecdb9bd8df7dac3804c8adbf9db3516d8cfe79cb43504922a0639417561b2743f188d21b76e8f4ce41f162939a14f8169aaa9567df28aca233a403d498d3ab6eac67884285240259c371366ea55dfcc98ec7633205f3fb543382bcda16beb +Msg = 721248d5545218f96cc0e8756e912dbd95661418957115ecd0dacb3ccc61036fe54413533f636d61ffa27343bb8f8d932e4579e63190e309e751368a3724b17a7f41bd7286a07ed4b361a8537d6a94b6235293d89d7e82f4d2899e1f0be99a16a8d0ef3a125174d9f0c42eaf9e6b69adda5607f9c1831935fb4aac0432f8e5ca +Mac = 3ca21e282bda0ea11c8b1dd7a8986af19ac75a3e6b1c0c02131ecbb786edafc5 + +Count = 236 +Klen = 139 +Tlen = 32 +Key = 5bd7b597338c27d20e9772ec0fdff39ca56ca5c3bbc9f1f22facc82c86d8f0edde439b6a23743e1b8630a0772b5532ff22069e7d9908a28e506c1f5e4d6f6db3d09ef22d893ef3cc09eaa9b2777e982a84341ceaa00d45956f73e484761ce6c61b31e165ccb0edeb7e0fb5255922ce27b13e4790399f8110730740276ba8032fa544919c5493d583cce5eb +Msg = 66aa32cece01bfaed925c97614fee37a52a0228bf47d81c868d984b8f07f1c96a5b3cbecbb67086406b2e5dabd7defb57f805678936d4e94746ab4818dc5f50c41e32cf32e7a8aafb300fb91af6406108cfbf5627dbd374903b10230b6a63d7642249c0ab0a20d38e7f953c27219f03383fb497038d705901e96b6edf48abb7b +Mac = 6e2ba26b55bc023c53dabb4c8476d240b60a5febb38d6f34a8f81d7031949f81 + +Count = 237 +Klen = 139 +Tlen = 32 +Key = 671fe8eb38047cafb577a5ed0989825fdecda94e210d0ef1063c27f54dac4d5dc381668c0b66c1a09e7e4102119dbe3b97b9a80ac69bedb39eda1d99c70acd0f1a31396c637a2d5d652e25801fdfb32e4ee7219833115715969500ba0b4ae92c7417a9b2c7aa878e126d988ebcb628de0d3f5b20f0d514bef854167fa2d26a59da1b0087c05e99dbab25e3 +Msg = ff44aa46bd6671aaa0c866bfc760b2d6ceadf1f04152408056059772dba75a6b6db42a53ebde01112af57e95ea0a7d1c09d4ebaff753d9ed6ab2ce0b5372621910c50887e3382ce7a3957ef4b1088dd42e80979a6b589f0fa137c1b2e335c3fd503fecea8dbc19b673700de504a10986a4799cb886acbd6d645b176e7337a4a0 +Mac = 8def5273d5341f709b16467f48d3ae46ec35dd20f4449dda7657c21ac1a2f073 + +Count = 238 +Klen = 139 +Tlen = 32 +Key = f795ab87cce39d5f7786037e6bf704ba3466a45c07fbf3829e6184c2438521102a9bbde20363aa92d0aa0d03f4138e878d175400044b3046e3e118c9e672d87854fb04e18f253199eac964debcb3cb7bb3a6abec6aa19ac33d61ee4a5c27756a1ebb67cb98b1983d6febf257ea5f235d4b1a9367608599c055e8ee8dcc2c62af2fe5cdea4590494604189e +Msg = 331c94c1ed01e9f7ec5f0448564defa62082d8968dc5b741f1a431c8bb69bcd9b24a05807fe08f3f6cdb9c606bf3508a5a221493851039956dcfdd44c8c8137ec8f53e24a051be29458dcfe87105adbbeef2fdc911e1681f8564890349070984fc850856593cbfddfedf6488716b4e60645c5ae138208d08c1ccfbad490ee713 +Mac = 9ea4cc85332df7f5f73415ddc94764227da7845adf1227c39fccbe0254970195 + +Count = 239 +Klen = 139 +Tlen = 32 +Key = a686aba184bae89ac5af1efdcb55476df8908b015c4706f590b8cba0e10e29a6b1352d6f1bed67d8d61df1285c6aae454b09d0280bd19d8eb19572f023b008b67de1f6a8b45a77a57a136e976164a7a642d360ace02b08e9c9ce46f97d4b3d02d2330f3297299f6978399c32216bbbf8a7974377237acf70a00a4fa1370751f478d37ff70c83688c993683 +Msg = 8c562a0b7e50074e62deed2a664797b853fc4394641e1e835840fd58c66e4d18b16e4d5c5c457bf75ffe4bd9fba61f33ab9b74dcfb0759f49da726c7bad16af386b525ce17e33802770d197af80ecb82c72c0e29c49ad3ea9141f28ce9c11f4734b21b28582f27b7d195bed6048883ecd037794367e172af5c99ca71fd46545a +Mac = ae4cd8fd5518706daab064f327553b23e221d8bd1b0b005ac634a14cceef2cba + +Count = 240 +Klen = 139 +Tlen = 40 +Key = f3e81c3dcfa5305c9ff15edf303103fdedf7fc73af841525d78bc4099b3818419d71ec87c25c60ce41218a26faf168e10a4719f49c6d4da00143fb51043c52c677a9f172123a5a227ec1a4e1ac3a71186b0920fa3a82441f5aae546f284ca442aa1793c6684706a07d5a16d6ed1406ec39c5784d31cae0ed0a56382db073f6ff5d433b4a6b8c4d90677347 +Msg = 155e66936d319f169db519d51763f9b43de5d54177d5689783c88b820d8b61e380acd1561b3c391347d4601228d6ad7372f5971c7ef85da49dbaf770ac764c1be841a51b04d862a2799cecc31edbead6f851b81d53ef14a811db1b7543b775dcf626cc2a4f8c828ddb16a33020fb18a678011e8c1f42f76a8a30dfdbfad742ee +Mac = 6251628d0e65b0aac304695a2059fb7cdd6e787b6d3787ea544a4a53e861bf5467d9d3faa8cca13e + +Count = 241 +Klen = 139 +Tlen = 40 +Key = fbbbdd42e5fc631968985c0657ec42ef0db17af0497ecffe3d8e1fcae1c454e88dec9631c744c0665a3b1016a87822c1401e1f3db34f3259a4ef3bc11faac8212c38418da3df6221413aeee4fc3aa2f2946a68db6b77ce4696efb6da34494f5efe26441e20d63391481e603afc38abcc301cbf9118fe8d0c3b18f9dec9a9d2e62e3e08ace7301900946ecd +Msg = 7a03ff3737a8b26de4f9fa293b94899cb9d5d9b2ac9fd5f28c59d6a78e36d03d77baceedae7a9b9d9623c2011abdb9078a315a72a50992c4f7785d62659af2f306fc3a09345f8703e3b98332327d673a401c6dbb41cc8731d188511987584456ced22dd2f0e1de6874c52402aa5bf9fe849ffad7a76f1b01c29299141ff8302d +Mac = 0f19b00a7f9c96a0d88fba43cc55cbd04c0dce844a945320c041e36c3f8c5b5af5eb9f38ed7b071c + +Count = 242 +Klen = 139 +Tlen = 40 +Key = 05dca0efde68f835650ca4a7eb21a907be12d8b159bea420d71e31b3ae28adb199f3e38cd61b0d629267eac9a2a911cc73e6853144b789fe92efb63bd47e4af86996c392cf0cad331500b89893c00d17d8eae2e0e4d14c83982255b26ac84f485d0c688b31017eaed61f349b272e45efd5661845a1d495b7cfff38a2d7cc63aa5d9ff9fe63c328ddbe0c86 +Msg = c1993dbf1dc2436639784627d83c581cb5af21a0d29bd06f0d375708f4a7d856dac35a902b19c15efc35fd3de62081241526f7689cdc32dd0b62643e44e691ce8a694340dbc680d480f0f9c4e27b84de9f5ecc72ddf7476edf4f69c8d6a0181cf9145f97d7d06613ec31a283735549927cde09873ef2f96cae86d06f51dd5588 +Mac = 42e45ef94ceeb15b5c5a1b6c6f26412e7e63a15dac6eb912bcbcfffac4ae7dae5f42fa7e6b1d7447 + +Count = 243 +Klen = 139 +Tlen = 40 +Key = cc17a0b3a2d1051123c11c5bd918dff0c0b93e5356f6cc19f29ab906562d00738773e1f2dd3692355645322c2fbdfe6eb687c7da5a22a47e04a3e4b8aafa469a21766d93328c8e4cf1d46cd14a5486f1dd018ee70c831e3a5139a7e1d57daaab3f292adeca59611e9b73b2915165df41dd2e7cc294a0a3148264eaca023e926c8c92011bcd287273fd2cec +Msg = ebdf5cc51dcc4827c2ba27d22b86f03220a6d206776a6cc1e582403013c1655ef4217db55706e765b8c7360a5c6ae1899daf3b3a8251a64d92880466ead26f8b8ef32a40fd3ad7f00807ea8fe38a5d7e7dcda6af0df5e609edc5630eac6338bb5f5f4baf37f1809059822cabe96ecdda6809f8ab41e092be9e41436f80fd28b5 +Mac = 30e125c44f1e06a333fab208db7b4f0eafbabaf3da5596daf7b17b17e215fe469ca829b8c8f31da3 + +Count = 244 +Klen = 139 +Tlen = 40 +Key = aedbe9ac8e96e95bb5c6a392247fab23b53c5d8a477721201a77ee927c6a0d92a6b320cce185621cedb130fea2bcc946d835521185451dfb25882a925f1bee0be5f754349c7d02aafd51dd4cbb6ccfefa56dc854cf300257eca28a68ffd4fc3f334e8dcc06a54f6dad50b164b4b74588e68dc73a6c605a9b396e14fda5bbbd975760d47c6926d3cec753b5 +Msg = 12720cff0ca649ff2e1c9355cba8020fc96dbe05af9fb4bc008d8d8ac8dee0fb741aa674e66def16c9a8d4e52289ad2a283c84165621c9a7bed046d0a05b56d43bd352f3e30d4d4854a501f246440872421f5054b3c0c91240096035597631bd10a2f8c32b0dc95d771c02c25f617daebc1d0a08ef031cc32e3fc2021bb7d97f +Mac = 6c5f36354db5957016edcffbff8e52148c35de807c320ea58a622910e4472440087212f5d7025555 + +Count = 245 +Klen = 139 +Tlen = 40 +Key = 89f6ce9c23e9f65f67b9f0736841fda218b64bf4b17f762354464e4ff04fdbf366089e18ebe21ac8ad6093c6b96d167c1cf3b93548a9248cba2d5024da528f9a23bbcdb883a915ec051157f8adf268eaa3e54a4f95f6aea456b2b70dcb81014a0736e2e6b5e5efb1b6f4c2710c75fbd5f7b385aa5d0b1b516ffe0a718a8438e95ba26509473eb1010a335e +Msg = 1784de20dbd9410f06ab0f19caf7a146e0240f59ca3899a85c4c452a7a3ecad223a5ad1baf0aaae55455557fef85010501a4e1ecf8fa6ddbb18207bc3a9adf14dcfe148f59f71ce072d065c7ac8a3c7354d1ef0bc12e2e88d97db7c5d7a233d94b785aa4610a5ea86706871a8a6e1a39e09180dfac3aa456dd279d6cd7bc8dca +Mac = a4271a7cc9f6e4c0eb1b8386cbf3119b6f333a40da853f09e119cedcbdd384973c55291560d44db3 + +Count = 246 +Klen = 139 +Tlen = 40 +Key = cd8e4a0a21484000fbc7da29d8669b4e6dd5004a3c61b36c6676011dc0628ec3285b47e51ac4998f7eace0f8c49823623382fe427e21dfa1996b76c2ca59660503ea410b6f6ab31b4bf4fdc4f736a5c44d746c2931cf81b669c8f488b0006dfa05411ec549c2f66c09a718d799c88b3d62b333487cf40074809465b997df0c69d76ac85bd055cb4961ce19 +Msg = a4946aa5aca018655242bf0fb9194e65ee16c4fb848ef3eb7b8d83cb676e3bdccda87c84d1eb0eff0e6c2051c67d897f3b6054fe5c5d7c6ca412f47e400bea3a70924d662fc88d4016f5a26f7e1d4f3ae5d4a8f89352d2c77cca0a8169f8e8ec53fae5310f601c9031864d512a2227feb319c7cf6f977c66cb5ecdbc2a5ebd5c +Mac = 12b4f4334e5498393832f146c7e5c0afad6ac9ba02021363570090a9140a786225c48d45018ecf58 + +Count = 247 +Klen = 139 +Tlen = 40 +Key = d6ec1de088eb1b2efab889a79233993cc211f67e2e7607c911c573bbdcb7e0eb21aa01d8b03ccf20001916f3d01134c60d6e1d4cf784a3a28089f5caf4a7655adf506e752cd2f5fb8a2bcffd141e847430865232b7eb75185753a68a365ae220d8856c9e43d415276196bbada58110acf1029c18b8d2069460ca8fe4eaf8dfa5d4f2043b3e6ab80c4d03e2 +Msg = 9638216939c172f74e845ecc4486eda080e6d0345305f29329e94f9703e409b02770b8e1155e020bbe306d6ef1c3706d1631d0911ef52ad1ba50cb11cbecc8e81ac04ca64a332c960b84c1809069f67242f6a0c0b6c10e4adc44e1fd7a821e9dd9ee82c1bf88161f9c49030908c1a6386dffe7c901b1c785f88c3965f7ee3355 +Mac = 11304e9a457258ad7be884ede48b466b976b572bebe8a615bfcdb8b6e8758ecc2adc99bad372fd37 + +Count = 248 +Klen = 139 +Tlen = 40 +Key = 65cd0e941290a0848c8bb67080c603caeb5719718133e62650447e3fa1bc1b9f1fa861e53bc8e7e4ce9ef45400c586c66a8499de77a3a5bc107d69bb7857e75e74f0b087b05961ea5e076ec220271ec22831d74f9dc09cec41a1d4f6522a4d91aecd80e23aed177f83efac23a695d4a76e875c2dbd33d29f2dd74758f6dc542013665b5ea0290f89877e37 +Msg = 6eeb152015e6939ef579840d299f0bd01289a053048964043e2eb19f20b1f6af988fc252de781e3c616820fe0114bd887e87dfed300db767f950559b79c1761e80399d37c9e065e7e54f152675f175709cafe080b4cc9b5c400d6591221e4fc00f31ce593fe80fa769758a0dee00da8f5548cc93f78eb6e9fbaf0a0a85902a9d +Mac = 1685a4dbc1af73b97a2ede015075dd73d4a07b3c059850307966ddb9d6fa82f520b5db07f5e9fd82 + +Count = 249 +Klen = 139 +Tlen = 40 +Key = 7668d18d60fe54739fb1286d927543268a6918d62bac18b9167279c1c5573688b5f35788cbae728ef1d5726c00ee97eee249be10f8d8e36eb940e4fc9c3087f738f2bf1caa402b173858e03e3453687f22b20a971d3a4c857602b73f9fcadaa3478e92b0c75b88f6bd62fa4bf64bbfc092cb85d462795ee795dd7bf194ca36732aee56aee8a88f14c81949 +Msg = 338ca368ad156741f6018e48a6d891e61ccfe19570ed7b2fa96cbd6b306278a485a146dd31db1e03fc0a25715f0ec7ba3c9807a2cd48136ddb121c5d30e664764e90998461dd615f73ff366edf32746a08a0b0644a824c0a31894826e97c5b67f6224364256259dec3a968450c8cbf7ee6af85e4d0e54d8d1598eace456c8501 +Mac = 602d5b37355707b54724bfd1416061ab895d3d7911d8fafd1da25e546aa07db0f2de49f324ab298e + +Count = 250 +Klen = 139 +Tlen = 40 +Key = 3ce78309d9f006e07308508ffde48da2a58aff635ac0a1f38bc40a9a323d935c1272bccd3cbacc26d833b89722b746dfb30c721b025b11db2ae4b47beeefcfb1fa061b626b6138ba92a2977bf5c39795974ceef87ac94ba6617b3a0cda4e47927c0b66716ecf92c429bcb5e37eeec8ecdab03ba2c9f0977bb9f162f40140432821e966a14bea226e23e8d9 +Msg = 768aa679f74bd6cf8822f6c1fc221b20b4be400c1e38e9097c5c0756e76d1c7a93609f1f5448a2236112b2ed5972fffd831dbdc75a39c9c2491190bcb30e2d7036e3d15a310768ca83687938965e4ed79ddd566c19f0c761a2628715e4be4d77e87b04d3957070ec768e134abdcd52d58867d4a364452b0f0fb6b60b8367c5b7 +Mac = 37a6e1502f0ac608701d68b4fad3b9e80121d4eb8af7573b6dcb5162121894f6cda020d44a74ae80 + +Count = 251 +Klen = 139 +Tlen = 40 +Key = 9a54c64057af3f7bef4797501ef71084dee1166a8a037c11430c09bc936d339250b22a97c31318db0a46a7f2bb98c5a3ca3ca4e4ade30407bd8db42ee09e5604653464af2fb8700016b3b0ed8ae3b942798f8b937317ce750dcf5bee830dfe29a1817a6ee3c5ce52db35b72bd30176c7b481d35e26c862c4f97b05e3c4e4b269cb4277be2663bb392075c6 +Msg = 0b6dfbe3665881bae120b8a3ba1d6bd0a73ba5abbd4cbbc68fa38c159ade085be103efe2d4cfdb6f764a8175bf9f34893f2bab1605d40352bf9c07702375b0188d58e814e991934cd35dd0f4fdb67c04d16ef9e8587b2d795b92cd2dc8f7db8a56936de16c47b13840802e883c0b4c29a52b178a7ee94025aaac64b25209919b +Mac = fb4cf434e81cb3ea9ca88dc827b799d45f0adabdd3be3722f7b5299bc3ec3924bfbbbdbdf2c48c9b + +Count = 252 +Klen = 139 +Tlen = 40 +Key = 16d9fd38c5d4345c381bbbf52952375d9a43db506923964d24168a3f1ef6c15dc3501b4f28b08b92e71f831d29e9ad4504a4dcde086d42a31475e3d86ebd492d131d7ae64c8b2739829a26f75341236fe6de92907b7ae74d464f0a467d8705a4b047004459ec7019b4958bcbd0e1ffa4e6fae3adebd2ee1461ace7d172df5c893fd697b3765ccef922169a +Msg = c9da201165a6165755cd01bdeedd817275989f68e1a7b3aae38c85ef24d9b26fce9f51f54d2ad73657eb386129b64ff7142e80dd397d9cb09148045830e112e0cabfb484762c5a0cb23e1359a708f23eaf11b7911506ab811cabcc2942172a66c52191e6671668826eadd9cef03c33ee4d2b8cabfda9aac68c9f248be2e2c4aa +Mac = 37d2820226c124868624270db08a64d1c218f34e907c8c7d8e0ff52e0ac641e8bc6b384d6c536e22 + +Count = 253 +Klen = 139 +Tlen = 40 +Key = f543ca501f80215b0adbff3b3a1822877c1fe3001c5d0d175967efaf16e0b023d29ee38bda085b3bbdc2418d018d63e11468cfe185fba10a743619684836f1a0a068ed348bf0b303fb4cdd0f77344d8311c5c0f598dfa6e80ecc32955c22adeb45ea0fd49901d0baabbffc4a04d78677597edec2bbd0c5b90e6f61bebc6d8c0aab6c72f26c035b68b564c5 +Msg = 41b7a26c17ed19ffbb2a26c6d9b9fcfc4d596cfe93e3fb0b7f2c38482e2d4d073c61d348376feb8054098a9a6114143cfb092d4b019bccb1499a905e9117588cb8c90e482eafc32ea9f70174191f5c2adf5a4bbf393536c8017ad0fd9854a7841db5fa73e2f5ca9020bc335be921fd4e5f136f6324f863d71195a02d2b2e6377 +Mac = 374afe237c3ac24e36368006609c1f8ef87255b0a25d7bb4020c0defc52de461f21495bc0f151845 + +Count = 254 +Klen = 139 +Tlen = 40 +Key = 3d31cf76288ba777d0da29e9ce21d69dc6419c153e7a4d2eb02f5001dde9970c659fd08d9535e02f80428de851167a22dffc591982bc5c842664ec779d489e883a4863319b51ff75c627bcc678615f27b9b55b8eb475458cc65a882fd5815a28e3b3ee29e2e9eb91ca0f1e4bea096bf37bf40a3b7baef08eb9988af32c9ab1338868db3e13048ecbb5851b +Msg = 7efcd40347389e6fe10b791e53753825b04d27323bd74cc1ce94ed937d5e535c76b4cdbd2b52f771b4043bcb6ebd9960e9e3a40101eecdec4a31e442b2f7dcbc61d2cf9ae43041dd8b2fa9b60fb32e3e78b5ae673ede0433af548b2490d4def30701e285b9fb071a2f34cac87e7f7f28276a4d4f3cce7affc4a4e81f611ae069 +Mac = 0829a099abd50327669d003b67678bb9cfe3559db9fea54b13647ba1db19d0a15b49acce0f4413cc + +Count = 255 +Klen = 139 +Tlen = 48 +Key = 77b60a4989c45160c1e2e41978530e6b5b62f99f1c480c57675076ce18390b61abdc504ff30fd1bd0fc8bbfd9b86a60f23ecb368ddafd7f397b37656ee713476c19c083de504929b1abaaeca3e7549d7c134735e5925b695f7c6a68bf94abab2a13e5a9cc66c3902c900e50acbe99dc91d826207f87250436fd12ff7a18c461e330a6ff2fe0f71fa04e189 +Msg = 534c85dd76baf3aa0e3cd31ace049d931b39ec18789d8d10426ed6499d8a393caed619930bdfdbe86fc241d0b34af318f9595f4e2b89c383a41288502cefd2172a3c558b15e36a732c7762ab67601a6bad39cfcb47763487954ac200ffc850842f48e3cf7d0cc7d2ab23dfb3d38e39149da2e598b5ad08a37ddc2c62ff5cda0c +Mac = 1577561f5f3c0bf523cd8cc470e9c1b9507bc6991a53dfe2735f033bbf881c513b3153172502c6cf0194fc00980e1fdc + +Count = 256 +Klen = 139 +Tlen = 48 +Key = a18a27748ef39b49be984e8d18520110008bc8a1d5aeb424bedcaee5a7e1a62c8666ee12e367e09297e8c7e3d4e4fd056587509b379daaf81949f27cc0fa2d210e9be951940adbfb55ccc7e5ccffa044318ff18af9ad7b7f9c7d1f939a0fff72c091e1daa7c3d4a97fab153b0a8933f2eb0d721621c86de0cfe100d13e09654824b09d54277912c79dec7a +Msg = 29c4ae3484dc27c0360343fd0b2058ba261ac3acf6f87fb56647f66554bc16c2451ba8445757dd2477fb2ad7d3c856d592a0d29ec3a348ff94977691c58d3d845cc1f59a99c304762cd4af17a69330a02ed9085a75e196fbecace92934a3d33ad57f3e3e3466c33fbf5679c76bc70ba3608c0ee7f2fb9132d44df5338848ff6c +Mac = 26a37c97b7c13097c5735bc31f8bdcdc27dfa96e991219e708c23d1b32c04d88a89a86a1c217724f4ce5bb580a1a71c0 + +Count = 257 +Klen = 139 +Tlen = 48 +Key = 988deffa74a9cb1073252f9fd70b89ae954b9b44abba7389b55a9e28bbdc99f74e6388dad38b2ae51eaa0dc04356fe50a827c4935fbd0eccb305a9e101b9f601ca269c8905327a29ba9de043cc87fe9317339c15ba0a0c23b6e35ddeb981d2d0345d92d0b3a6a1256e870fee1ba870c107f78c9265a857d6e67a23e98a3d14adb591d47585f0892163ef04 +Msg = 6e8c74df65f0a6708270eb9963f9075d0e4f442e4009670f01dde3f67c1d4d740e8210979d2962102bdb7691aa91f3791237a6b3b2b173dbc31c92a34356f87601c0125bf442b91bd09063a6dbac96b3fdada3a717be90b89669565248164db96ecee4f1124595db9b1818a09e53d752f736a3d11939a5eca24d97c933653487 +Mac = 553d71c6e005589f195283b6a4b190ebc88a2cfd9e44c7c283ba13666cb032de35a04fb8391fdfa7f29b9629cae6d2f2 + +Count = 258 +Klen = 139 +Tlen = 48 +Key = 2021755f1edb657857df8ab2ec9a307d9d984360e14706e135fe08a9b43d55e4e837e9e7e08d6a15825d1603237bfada55fe64fd00ff9cecb59dcf693e444cd97a30f3ec682ce98081a091c34bcab8982b4c103d7ae7e02adc86f93ccd7eec127d147ab8de404c82fbb0e53b8b10d47fc6892e6677873b6353c0706b89729d599aeb68916b4ffae39996f8 +Msg = d6a871085b50187629d6edfebed8e9476d68a512495e652844f25691988a140766d06fab9d086ff61ea196f11e0964a9cbc621dd32c3d6fb60e79d4bc7ec1a69e46f4af81f437b95f30b9c0a4e08b7c43b2fbc88be7f8061ff9105ddab71fc7898ac8859a8aa453cef3e89b0187cea8204cb0079b53b6c436b1818b00cbfc11e +Mac = 2f10f4d5303c5b237594ba5bdda13951be2fea63c02e0f2c1821c8798dec4dc7927b41bb7c41192f6cb1234a71de905d + +Count = 259 +Klen = 139 +Tlen = 48 +Key = b7c3c673bf96cd22a641eea1c83f036e79289af445e053607c0f8ab0efd2360cf4b1115ab0d0fa0d9569973d29793efd09ba16e92ed279fe70ca9daf48c17434dae2d0263393cb49cfef66a95e7770e8c704aad66e012842b3d6fa10bba70c8c723f4bfed047097f5cbca30aefa061d6bbef9de38bd428d34c1de9fccdedc7bbc3b0ca0b10547c5645b796 +Msg = a550b9edf71774d43ca00fa13da13ad1d59c421053b193ab20b87b44a28c30c95fa915a766fa393aebec208831c7c730ad3ee29d6845687fa522517cc4c79f22665f9b21d22761b7977f9e6b734199fe7451709f5d75a45e4b67d8e39829d6600099d3c40245f432898011b1ccb6b82573fc757efbeb502f5baf98e1e85bdf69 +Mac = 8d0af6a102ca32bdff8862a35f59726628818a3dd076158eef955e58e52a15178da59d8453882bd5af2dd84da7eb8153 + +Count = 260 +Klen = 139 +Tlen = 48 +Key = 41d7851e98c51d6da7e612c43aa3b87d56be5a01cd9373300f9d2003433bd66f97b4508dd479ccf935ab777879dd26dd371b462d722b16016d12142cc0dbb49eac935888ac987dc14c1432693ec4cfccabfee388c7f26ef3a83051b7586a02bf297b845748a9978e95272cdfb2de1b115a6e185cf56fe4cd69fcc0ec3272279bb575bc41d1348228b8ee4b +Msg = 767c2c4723f582437374f26bd6fe7e85882c6c9707d151a9cadd6fcb3081405ab79453806e3657faadb3761e03aae41c706eb784d4acf908a84efb84eca0ed3b60b1ac63f7fddbe58948355ec8cd216975988720d431e3e05d7a984db4da8696db9bdefba791358c70fdd8330db060f4ff748674eda738b85129ec30707934f4 +Mac = 466b3245ddc7a5beb00fd06ab35877ab60264571f16a1c5d7162442dad42a30c3b4a449c799846e44c96ba43c8c9b039 + +Count = 261 +Klen = 139 +Tlen = 48 +Key = 1c458931cd6ea07c7fdff6bf29c5d7a42033d8fe38b919ff2c39c8ab40f6e68c24ee4ea81c6af3b05ed3697abbc7a7b1826c0bcca2049e3c0ec29aea66dc29e0d3e27046334ecc91765c5bf7471cbf26efc51e35774c6ddb0d35efdfaaaaf8cff1caf7f55943b3878e23d51e15eba7692fe51b2301b80f42f13acf725385dcc1454dec9cd77131fa70cfde +Msg = 47c39405f78038cad3a5dde2bba4fc6f93df3e07e9be4068d8ff93672c4e082ac6162a9743960b0cd8374451801d37cb5afc97f24c2d2b05ed01cefca255bbbe0766079490e76fdd70515404b97b04b0c56a3b3ad66aea64f95d36483054c48ecf5c34e2279beba5629b16e3aee5eb869ed232c9cc9e05efc4bed4341d73ac04 +Mac = 800632a5afbe6e2d03bb2cf4e930b675864e93bf27b679b625f0724f17bb4a66e78cc06facc19945c46768832026e05b + +Count = 262 +Klen = 139 +Tlen = 48 +Key = 0eb602843c11877141d8ea6069bd65b7556c40a640c13dfe8838344769a5fb0d0b25887abf545a2a85c0153ad39e6ca291bc43c568b715473c6e941ff7b690ed89501a8d2d18e9eced7efd1a683a81a1d33cf6163ee28eed186ed691f6b798b5901f00e40cc4fd6080fbea29b2fa6e5c22d4a1be4aab7099242042c7ed0fdc0c297a81a9e7c25e2d461d26 +Msg = 67818341abb04645ef2a3f5edb0ceca2725a0f573993f81e9b88066b8c6d6c386d3131fb2f0b7bd5bc560c0c929e0dbbb1fb0ac8b89d3f174ba912fdb744e0f8d9ecfc9d3c0ff5d181d6183c044236fbbc7ba89563658f31d7736006c1c0a112745ced0f18e33ea307556cd77721f0ca5a83eea7821073d40990fb6cf00b36f0 +Mac = 0216330dac742a5b8023fb09812d8a08619047fd28cadc12f37c4443a9263262588d0c43661eb7d6b36a801dbdcee794 + +Count = 263 +Klen = 139 +Tlen = 48 +Key = 2c5354e0c3f86ebee987fe9af1db03c7f376877867c6d325f3a7df30822a0cc99694150fdfaa43770c2ce172e1a0f04a8a501c4d2f96ee2ec85742a833cefc64838bf71d9cbb3e02fda97f5cdc85bc70786544a7ab89e2ecbee3545682d6fe079c3fe05421b2c6266306be9f0a13cf0166bae8cc032617277e52fb8198cb7c7889b8b9fa971742aae64988 +Msg = f784430144b3ac1e25ae26b68b30ca8c012429013417ea2ab2eeb426f2d44eaf957704eeeb744d94b90fac263928d498636b0f1e6bc6e03f8b20e72b0248064e5d2bc225f54bec51b96c80ea2d90cd15b326d6d90a7ff92e1481ce57dc9f5272d709454e6a1fd07cad2c6ba96f51fe2b7abf46d917297b20d57a305387c37a43 +Mac = 993a5bd06cb1062b06a2956744f0d74b8ee6416a7e9ca44964953684d47250049dc7f603bd4b7e541770326cc0c8fe96 + +Count = 264 +Klen = 139 +Tlen = 48 +Key = 8b80d993c7f44057d20e8123f8377347ddd4f4f96f6e7d991810fa3a38f1d85dd2535fff86ab42d7bf0274d92d9b3efe76d68f4728549300f35c8642157ecbbb157638b1b453b54521d805f56c22e3653d8b515fc6cf2d18f66d05b5ef502c0dbbaf0db13a32c02a5f56db819c128b059bbbe3482f25736b8a0b1d9bb0b024dc2cc7860501908c0ce3459f +Msg = 003ec4e4208538ec15be8171a8e1cbbc8e19a3f4e26a0ce4d297cfff984312a1ac562c9837a2b8e3cbc7e8b952531dce452eb4d11f36223910264341f5bcef31881bcfe0d46e6e77edce9377dd66cffee1d45246d6d3026eee17cf7da77940a4fe5452c3df2f832fe19c2ab3305f09d4cad32559ef8ad60bd2341aba95c22e80 +Mac = 40e8c2efb1083622a677b59fab9c008ea81afbc58bf719674e6a71bb94eaac304631427abf41acb3c87dcc65dc485b62 + +Count = 265 +Klen = 139 +Tlen = 48 +Key = 0fe553a781639eb8b8c2b12aa091f59502c1a01ffb4ed143ad22dcd13436e236dbfaa6fe90f79b9796b242587ad4b2c148897805fe26a2c5410e171f4fd62ae735a76e3442e4cb1fbb0dd1c7d0e44d99cfce1ace987b3a3451c925325be6610684b553527e7455d7909b09808b07eca200572e82b097c118441cb0123eaeb21c30edff5f2bed62477b248f +Msg = 1a84994d864a65d08ec6735d025837e91730abd5b958441222f5258aacca94bbe3fdaaa5df1e4ee7d1656425db3b41ac25fc62592dfc5eb75ec81a67e5ae3cc5c07fe2c81793932ad00e76c95e62c14ed915750c54c5492b6b69e3051bd94ed0d791a97ed7b11ce1b449111332d4a0155c024ab6d7bbebb67060ea2cf754b325 +Mac = 1d94fc28212de0e3d3254b7edb00fe55d2a0fa823714329b5a2f7fd502d4c71955988f54e6a08929b687b9ea47448d5e + +Count = 266 +Klen = 139 +Tlen = 48 +Key = c0fdca48cc354a8cf616cdce0d80c39113bd5f0ef163ea346a7b5ced4ee22da3f0f06903d9580300be4f6b1bb0f162e293e00eb7d12e49d3507d3f8ba16438d17a15b2fd663db3cebb2c5dabcc36c32f6159fbe564207550ddc68a2f219f58fe45b4cec0d9ad03fcd3f5cc06ca188d7f65704f1f120013b2fba06661365b36333b15e4d49c709a94f0f1df +Msg = f3ec088ba8d08bb36350413144d285479d39408abc665c8904fe7caf436eea6b3f2dd08d9241acf4b805fe66672943bf1efa274e01e4f77ce43555aea6232f6dc011f2c51d0efaea2d9f4e2235be8adee9221c2a3cc1b3487794f598889a71bc9d1fd4f8f23e5fdfe7a5982c569840ee233986e815067a37e4a3c43593da969e +Mac = 2881746de7893d92c0a0421db7e7325dcdc4860d3b10df1270c508c531d0505100d17d48c2e55766200750dc03e1778d + +Count = 267 +Klen = 139 +Tlen = 48 +Key = 05d2120be33cff0014bd83a4da9e8eb642c248534e3a522252134fd09f72a4bc5fe47bf3c0ef0e5e55ed223ab91ad1c975eb8d4723a16220d41f7b60b0f8e86bdccd9feea1d6c015cabe1dff4db4f96f2ebf10c4a151d82b6f2007139a3155e1443583e5cd199c8d3cd97bd9e0958d0f37e6d8b00e723caaeabef9cfa74472865fc631c18de12a2f72e544 +Msg = e733c695bef2faec2b99794ea1a06f8dbef895ce2394a630822813aff831f7479e354d5c5b4c6159fcdf849886b00482ca1a5bf73b9ba7f0fd8f5a623e3e3366c9196d98d84136bc2a4962a8563d615e5fe36e7888400ac96a5ea941434dab1191688d10e0d9615de0607b46ba506e69a4da3719b48db704f11e6712b0654790 +Mac = 8ef1c2ddcacb92e5a66d02e008d4e6830c66082a1188047826a3c08842c126c3d0550a41309fb69c5fd12d5f0eca5187 + +Count = 268 +Klen = 139 +Tlen = 48 +Key = 1f2468935aa2a207dac977e94f5b31ae68191bc5e9883679fef52d18ceb78b5554b42ceb6a27f18327a0b8d86b4c8c19b876188f444e627f4ce9b652aa8adff3aa209e791a0f5406a03302ee5122731c7eb2b8b2d1bcd5f0991fba576307750eca6fa58490e43257ed8c3b752668508162d6e278ba5af7948f9d227020b6b36e5ba92b56f42df33fb5b34d +Msg = ea2f8f950949227cab95e57a1c421f4880f1bcb3ba0d4d978d5b4f0a01d2b0d809ac8f3062bd449cbe04a0362280751a8d445917dacea8aae795c82cf7e1b14a55dfacb63bf55a1cf153f95839cbe3e6ebe25799dd277c9005c3a367e252cdaa17f16d8f5a986fe48cab784629cb7094e3f23ea38abfd2332f0e692289cc0ce0 +Mac = ae673ba704e7b8f7adba1ca451c96c9189456220c8b5fd8f3cd87737c88390b250170936bd9522dc021a1d1593034c40 + +Count = 269 +Klen = 139 +Tlen = 48 +Key = 07d1cd3f695b642016a3dc06b70140a2cf3d479dedf42921263db19ac28d93be36d801cb53f9790fbc54e1ae9dbad5a09a8d40f90624296d5670d013d5e0fa6999838999b56d4ffab05b24da369a367b0e24a15b4c0d40b8c81dc254cebf007617198d31f87d8fe8da00ce12ea680b3b124c934b2776140b648caee517f04dec9ae4371c85f2e1e2228b07 +Msg = 156fce19f4609057ee8df69cf72b33e27026509c4bb972ee6f3b5c1d5e3c344515d08a4a342b96105e6ec1efe3c168619ca2dcfe177cadabf47c280e8fa01e45e011e7d79fb2a7eaabf9d0b7acfee83cf7d18d30b311b63c3aba3b68c23f98d43dd9eea87e1e4a4d9cd52ade9b093dd9495c6b1b679e150b099e9e1540402a5a +Mac = f3a6a3c11b618d5af52ec6f501a6eaf90c889297316a7ab6ae3e2c65da06e77338d92a4ac0fe44a96340c9ff18a25f6c + +Count = 270 +Klen = 139 +Tlen = 56 +Key = a08e14c2671ef79f81f732df2df3835ab0cd0db9e190fb88eb4f668c4f1778562822d218b34d2cb80ecc3b23401dd8e47a3a5ef59d1354d4fb3b4cda62e20ac95703e9a49fde7bc304a970265583b90aafa9edbafbeceba8b863c1bcfb5dccecb399210d32ba2ce8e9f59791730d6df4d68180b10504082aa92d8cd9207006e8c64d42fb74c78751471879 +Msg = 0fd5e53b9797cc3ea75fcb7e70a93b80b54091762b0bdfb7252a9e6d7042aa8d7c148e0dbd55025151b9b2e6e3524172cf188eeb87c9360835f35af5a24ea24b5650813f01fcbb1a19fb25e9c5edac75fa019975e3c314038736e64da623838de3b0473b29340080474aadefdd2585707c233b7c09a48190621ccbdb4467553a +Mac = b07d4e89d7fbca2db335e807f9ec131dbc75b878c513f6cf6595d7545571fd1361d8229dfa6949cd97de564462937b35b92320e3ab30d9d9 + +Count = 271 +Klen = 139 +Tlen = 56 +Key = ec4698b68d26f2fc0428f413a0ef0dc4d6b0e6233e2e8b1cdee8cb4fab90e11e4dc0540323e91b27878c053153ac585ca383b8cddd744b23ef411b4fd87ebca66a452e344e2c04544874c67ebc83955f72940d2f96ae703f03d200d1c179ac2dcb3eeff116d7f6a9d049019fe55c0bf5c84dadf070c44097a105427d6c6afadbf9115fe184d2374ea6747c +Msg = f1450e17beb57bdc8e2ab1b9b6b35553993681e8cc080d8578bb0d7900379a09e40cd665e6072adb6b04d24b23029cdbec7decebf4f8044c1ed982aca8792a550a7ce618215e0b838c4fde5b57415746d63f25c7d400f16feebce752393e73b92b3b4816b8e2a73dbbb4ded098960ffb1f243262b4495d58ad0c4352fcadfc9b +Mac = 664a4b280edef3004ca8032a424206083baf4ed3f055f1958d84d7deb8ec7eab7f9285a3b0dce0997c07b38eaee1853aa5c6de7989338d5a + +Count = 272 +Klen = 139 +Tlen = 56 +Key = 7ee879498441719e0d48af2010edfdc5b28bd4715fb214d21a29f7881133488a7512d0c588ca1206f82738196b014c335bbfab8d241ab7525b24cdbb628877783913e253977392103a3f54977b38745525cf31df87e76ed8c8dbaa167bc3320073f3953ad9c559857b99ece06719ddf3b9c24caeb1a0a02e095878e0856ce3e8cbbbd3c47547cf2c653be9 +Msg = 378385ff81dd16b3702920075bf93f3c48c658aff7e3c46623b0b0e90410c353181d02a8231af16975a8fb666b3d14d438d39d9fe5dd8802977fbc5411febb25797682895fcbb1b4fbe1ebc7b61080eaedd2499bf1bfd44552bcc1155d6f6c09e3f6cd4a3cd89cbb8c3bb8d24558c9a7ed2d244a2271f05adbcd87d3f0491f28 +Mac = 0c79d26868ba4802dc8af7d0ac89b608b6a1255f005a9cb65755ff98c4e6f45dba10dab91d0bdbe9f15b0ce693cba841c0bc12ecbeef8227 + +Count = 273 +Klen = 139 +Tlen = 56 +Key = 97449ca6c272484156c84d60b7afc1cc59546a46cba1df1bf56beaf89eed31003175151cc05ddb92493d09da385f13ad2e73375e0184a66d042be45a880371b7a25ca9812f34e9b01663f30dcd1594441f7d843a2cc88da0b150efc9891304b87463207e18dfbbc345a1d2a27db98abab4da17815454dcdc8442d3edaa05302c2ef141ba824599f25f616d +Msg = a0be64e0d1c2cd877e16048abdc5f7f007b30964eb83643803b78cab28193a67e25a674e22faa7763467b872ef695bd42fbd62ef85010be22cd08cd23f2def762a2520d95fb0455b4ad94df9861ecccf511a06db3d61490429ac815b703606a06065b808eead4e3da7b2eba7eaacf2ea55101cb07d6dc8a8e29392cf22fb26ee +Mac = 978c5b056ca1342170b158a73704c35885f5e8db7d76c2fe74466913103df9dde24e1100413bdee4347771ae355150256a8df0a56baedbb4 + +Count = 274 +Klen = 139 +Tlen = 56 +Key = c52103e948ebf17ea6b3303a479580ad0748c9ef2f45aee4a52c64bd5f64c5c21d02a04f58ed541d753f9dc33feead7d94ab7f2b5e0a689dc6e4ef0da4fadeed39da99e42007af138254af9c8a913d6518696419ba8b2e70d80872b12efcee757f7195ad88802ae634b90ecc0ec657edfb4a21c0290f29e6436198afe7b51ce0598f3db479a2ef20f23863 +Msg = 6f8f23414c2907bf8c753b13fd1b9e320fdcb80f366a4211907de8c4c8234dcf3a57502658d68e804c2e270cdf18c65f9907dbb129012b4a08ae8b375aafe84115308b2064c19beb4e61e4d393dcd611d658d11d012aa021e6ee43ad22d6f1ac47425d973a9139e8d937f8d2e110d92f0ff521ba868ca77e7164968ee9416ff7 +Mac = d65b12dc067e2b1eebb59c6aa1b13a02bf7c2841422952b4379c61324897b2906832dfde7797a644f5ed9eff9ef0dd723da7fd2fdb7cc120 + +Count = 275 +Klen = 139 +Tlen = 56 +Key = ed8269eb2ebcfda7d381d4f8a5049edc74674c905ae675624453f8c1adc2e396ad8593d7335b1d588ee4ede53358ad8fba79694329c6f0a175f27d0a469496fbfb20359aee16268ff979b015398377511197a1e2727738b95ab7cf2b9b726944de3b965fe756dff31b2964b03fedc4cb82a93d96be611553fb8a384a35c222195fbeff4ca784112dfcda53 +Msg = 23fe5ba70eab493c715416c16050096e00be19748e760c8fa23fdcdfb5425ef4e1be2528e9fea531798894f6af9896a2d9cc18f781217ce6a71e775c4d4fb85e39f5cb58f6fc3cb21c2dffa5d1a50f4d908656ff29eccddc0923e4a6bc1724d3b00b13e03c8e58e8e0ab1f75cf61bf96aa539a328fbf459b52b4ea660a80ea7b +Mac = 8749a3f31a8ba6373caf881459b4bbe7b57a217e399e61c8204557c6d10d45b9fb1bf4682054076fcd8b4dc5472a865b5c7e7bdfed9ef420 + +Count = 276 +Klen = 139 +Tlen = 56 +Key = 3e0913221bafacfce39482279ef2fb3f06eac4153b6c1eaeb856788f86e04337af3702eef668a0bdc58007be67f1ee967738f23f99bde90b68fb73e5afe0d1dadb77fbd9b0c4ecb73cf0417609a602c797bcc0cd0916e0241fc73622647ad65da911266db18b38f32e2b57daecd6e0dc4dbe5448f53daa03c603eacd0f74f7c6004cac3162852b77857a72 +Msg = 82e05400d01a7f3843b02d191cf0477e1ab1190c9be39e69056afea9642d55095569b6e0224c70d22ebf8f479483a61b0b7fcc980d58e5a13843232ff417cc0256a73d90444e2f42dacb39df0d4f96488ed52967f1b2be620f6d9314a9d017bd4e3ff1f87e4944ee0f7d31cad07f9e6d6d5b36629218b1145391563ecc80bea4 +Mac = 4b80f01d188bed5cc7aed1e9f5bc16595df37fcbc8732d668d228d4cdfa60b66c4d9b5becacb2eafc28c31db904c41473b31a987ff46d3f6 + +Count = 277 +Klen = 139 +Tlen = 56 +Key = af28226e910a27a751c2545db05f91b1dda4a121e8ae3f5179d76d0bc2db0984b239a1e16bdc88f9f7fb295d363e9c961b2277ad189ee7f1d707fff42b314fd746d7b9c72c3c80c86813a2b1fd9c68789f113bb02340b950357908b649aa6aecd4c91229bb72379b0bd26663ecc31ce2d0389433f0dcdef8f9f6315a0290824bc2d8550e00c6d4fa4aff1e +Msg = 5ff266343b057668b2a5c81ae08ef906e178afc639eb22457355dc76095abd46846b41cfe49a06ce42ac8857b4702fc771508dfb3626e0bfe851df897a07b36811ec433766e4b4166c26301b3493e7440d4554b0ef6ac20f1a530e58fac8aeba4e9ff2d4898d8a28783b49cd269c2965fd7f8e4f2d60cf1e5284f2495145b723 +Mac = 047fbd637fb3d82f6eadc40fd8ac221ef3e33cfddf6f4cbd8be6ce0e2278980c241a70962efa61b67ca13b8b15222b0a589df4f4a56d8deb + +Count = 278 +Klen = 139 +Tlen = 56 +Key = 8b5b16537dcd2245ac73db5dd4e6febaadd025ddbf663b52783233937c16f9293c8ea914ca35006dec8b104a6ff537e2bd0551f2b2fc2d5fac8d3e1ce1e4934ef6e709aecdbcc02f9e8bcbe249852c16ea25ffc3aeb5f529e61504b45ab85d23e0ef9fe92d6a4ad3eafb76ec0b9ec59e5cb796195c9a7bf94f50ee228f993fef232dd18d924786a1f96478 +Msg = ba33904d04c8b08bb2c9d104f62d579901f0a23dc8c3ee4b0802771d87e6e1da9efcd88ff4d5f4828cffdfc30235b90311d3bba9598d1b235f5f307ad6c7d72a1d33153008b5fe64e3fed509b48a74a3c118ee08525d74bab8f975748eaa09033fc09057c9d196dac0adfb019594502018a783823c9dbfb91ab78e3339f6410e +Mac = bc6f6f9ad5bf623506f1242364e4d9c94b8624c86b08a9af59bcdefbeea09bf0d8c7b2cc84578b518945c67abae81f9389b17c5bc88589ff + +Count = 279 +Klen = 139 +Tlen = 56 +Key = b39b9aa4e2c72a00ed85931dd26c6069108aba7cb0578aac86e8dedbb5658e9471bd1f570998e730248e728e4a962553a7c121280c286b133722494b54bbef4bc4625a251ce27d1971949b66d3d2f46017aea3c3dae4c747c20ee17407177db832f215b7258c32e25cffd44b720814b7e7bb08f52075e76faf136dffd561810445d516b42b7e4fb46d37e6 +Msg = 5c3a432b965ab1b6bfcbe3d2902895a2af56a8ce3cc560dea6f2cfe7c431916a21a9ba7997a00d1b1ff96ff2e7fa9b1ba55316562c5c66673c9f7fbc9f967e4f71b699cec0ac56fa55e6fc4dd05547dffb71608a587e0c4cfc0e24eea0c845e3f667c8733906f519089a732974c003b558b96fb2e9b2bc578d49a7c6f14e50ee +Mac = 653cde316c2a653cac8b1f6bf9bd5c870a606def9c113804130153d76df6ddb51109a96fc022acbc020f8688029f13e0cb0ad67301a6c4a0 + +Count = 280 +Klen = 139 +Tlen = 56 +Key = e7e687fa0e3d5d25c5a8a8dd13a541a9292e8386e733f4f2a2472844259ae33ef5277ee5da2e8c909ae5bd40086b022f3dfdf1ac266c6c253fce7d869d7485c2321d96ae4d691d166091c40b0654967a443564030fe368070ff92903a3e79e1d253096fd6fd758de9e1386e5164a47b1c63da433ad8133c09c2ef3643edb787a57c94879495e8411dcd5cb +Msg = 3d0278735b4bf056152f4e5aef2fe220541b0b1c3828fc48fc43bc1a92a470b3e1a5dd596bd529272d48e103c63241d1dcb4afe6bcf688c040761ff4f6a003677e9e81c134716a1f10411709caf1a9a341f795271d6b6192b35da89e2a6c64f1dc946d94ff483ca685c1f5524095a5fe4a8bc7c5a4ae0e281da05e0076311bb7 +Mac = 747d22793557864754598e570379f66cc46bc439e68638f505833ecf6c51b70403315ff216d6664c0c9b3065f8ee9a48077b23a7bbf68562 + +Count = 281 +Klen = 139 +Tlen = 56 +Key = 1435f0178e91c13ba11f03ee55d6a4fc9df0c3943641b840d2c8541a7684693e21888d7bae521c4efb597c104be5a56ee923e01a0f79cec00517ad3c8dcfd70a7f268bfdb1abf0341987574b3656c1ceab35a1f32e1ce388a06f2c2a7dcf64b8773672075e4346d743d21d06ddd000042c4e8e875bd3fc80ebf75a4d0e2d183051e1c8007ec3251ec16255 +Msg = f18ab3088ab39d5ba081437d3bed8561d3a03e06b5c0c6f1a90abcdad22102a6d52508953e884ebd1f1d24b7f972b598e0604322dbe0b43c8a204ea00bd7bfd41dd5605b86deba2cb3b84a639f838137f6490f2c79d66189a4ca680d8eec9dde12c142c22c5eea91a57a3bebf3c7f3265b83298a5849d6c1402e93892509a4ac +Mac = b219778681f759a0c9ae6b9a8f74d282d47c0278184c9c89629ac8be7cfc7747dc957ed94e5f1c5c6cd3081f98c0efb25f24e1c5d4984a71 + +Count = 282 +Klen = 139 +Tlen = 56 +Key = 67a259321cab0901526602d1ebbcdfe5f21d9a5bdcb9f3020ef3166ba0127843613a02df1b9c711918e9fd5be40c38f955183ac4c97ffbdcaf8600c549f53abdaf132b4d18d14a1f5546a90f9e5bd58491c8fd01783f57f7cbe6c0def60ba3835b141ba49bb45cba11654f16a0127c2faf132d3b715fd0fc6afd9edd2fbc7a3d6d241c0b2cac6e93552e36 +Msg = 8f18140963d761c2956c66a83f94b88c42c0dd70e7200b3bc60031b1e7573ca1289d9360dedee377bf0d2299009aced8ba46761892377cc3994719be71a2a19cb29009128b8fa6abada537bd64f4269c078f0b0d938c72fe935bde7443560ec4f4987e06b21331c725ddaefeb5cb4941f141a339324874547be188b9a49a0881 +Mac = 8b534eff22fa08f408f8f7ec5b300a5320ca0df43d41b506a38315be34536295a1e1c7b5bb9052d2be32e03fe0a48f6071d870be71ddc7cd + +Count = 283 +Klen = 139 +Tlen = 56 +Key = e6965a05cf02e24aa7c20ada24045aea3746678a3ebba7297bf0855cc5afb1db7d24baccc43ede45eb58210c2b199ca19798187e4ec4db9df504c23b651a90dca04d868f0ac73473d63c8e7abecc426df72b493064ffbc480a89ea9ac488a775375ae7d309658bdc4eb57aac43e6f4563f452329e632f332a0c924014ac19eb02b93042229df8b893c0c0d +Msg = 13bd4ca671b6688488a34f05a5a868840a1395ea4c35ba21fa7179cc7f9240354a6186862c78513d0151fcda92a237dabaed4fe9c852b05425a9a8bd37cd6d12843a62c01bdb9623301d8d41064844b9120f6ff65d6605a82a93fe75d9885ceb0b7068ba07883e205c308ba4c842960759a27d78d216c1075058055c2d6a13a9 +Mac = 56aa0a589f3f732d3828f8ecee6b22ab6a56af8eaa07ea840e61336abfd5f71583ab2577a3865b552c0b0efca3ce988af9096b8478f0677f + +Count = 284 +Klen = 139 +Tlen = 56 +Key = 45b07738277c0501b83ca6bbf19bab8544d1bb7e231a73dac16750351c54cf263b5bd218b447465572eb0364b513f3955abb77da5d7f06d89c53183ede744256139fa2dade807d08506d27f8f754232e17f28c6c3746b3c9df460a07a1d0412256e3ae25aa0ff241db2ada20bd45837702dec2dbb858c2d513a8ef386d5013b28b91bfa222dced29998be3 +Msg = 246690b11b6910d8f438d91d8799a8199a889a4359d942b60020f935dbce756c709c9e78fb2d9caa1aee3588ca42561592dcef53fe6b04054f7d02b9719d4f062dbf2413a0df9f58ece414a92dcaa570af00123a5e0fd2757d7d62779bf1ddc3c397cd88f4c6406bd0e11f86987bbcb158beaa005f0dd18df2e8c1774210472a +Mac = 6507b66e18d6927d0b525ad606d6dedaadcfc31e089c9038f5a364b48b97a33c1015b8441e9c8207a635a1cee6dbb4ffce58770625f7ecd7 + +Count = 285 +Klen = 139 +Tlen = 64 +Key = 95af10920dc788269e70b8560b73135cf7f6f5b04a502c7bd61cb74f3b8ccd160701224922d865636a860d949ae755b970d3858c0ff37418a2d24b7142378ba11ab352e5c876da1a076642728b73916b2d24f8024876572363e7036510cec7f413ed28cec749ed33be3adf56a8bece597612d478bf84de85628367946df887f73dd92d6de7faa896d7276d +Msg = 61d91f317a902ea0944e11e92e6657a589e17abc027fcd869ff8b030e8870662f8a9e91ed3239cecfa42c0343d66cbebd1c2b771a25df7baea5cafad038424c97afb720e644e7d1bf5b829944ea2cec69766e68e4e580976de071c2274c0c5eb0e5421c9d51bba76ac39b3d009204680035771d9ad79eb02a3805d58e243cf0e +Mac = 6e989ec9cbf010ad6691a672ff4ca90a00275f9ba4c81cd147cc506e1dbc8bc93b1d96a375e493503c0ac697f7c45e4fadf138242df7e06e677de245afa97780 + +Count = 286 +Klen = 139 +Tlen = 64 +Key = 27e6c9f270b9855c9658ad0e3d6c9a111a624f66fa64a49a0688a49b454733ca6230f451b0dd69b76b275cb241967e3c101b4fe8f2023d77772210a63157854b763239a061eec9df1aa6380f57c6911d23c0cd2edf00f63486218dbf35612a17ea5262878bd3edfb2b3f08ce8ae419dddab792e0c94517fabbede38e574d685546fa35ad37741d34275996 +Msg = df24279bf8277ad1091972b82594d84677e54fe5d65786d19ab5b2c1ae0a3cc9e7abb67f9477145d575e196633200f0ce557bb5278b8902e1496233117a7df69660bfa87068aa73de61e8eeaffb179799f275086029f47c323f6569bd18dea15054ddafa73e89c3a5f61b98cb2ce7e554d5df4cb9d95135a70de33470744c393 +Mac = e6f6061275a89345f5463cfa198d528e14047d478f69ad7a73432f18f88bc68a1b8aba2c3b025c93b25deb8f403763a55024408a97a903e95f0cb6178e7be389 + +Count = 287 +Klen = 139 +Tlen = 64 +Key = 59aa9d7f583f6ab90b472935aa6dea95e2fbe402cbf70c6e1992e61c96c49b63d0304daf0e4da7c889c7b857d92301a6aea3cca7c069c03809deb3a53155bf6e4aec984bbdb31c6e84112c089a63bb0eb0e5243d22d6c15c29d7b9c1529519162fa7275d4cbaf33264eb2e50d5743f57528b94cdd8873662e345a178e1cad2e2e729a1eca3a7519c921e66 +Msg = b9a8865c3a6ba8f2c13f35730b39fc3c92405c06bb6e116851b84d9d32d20a88484d9ff5bb03922265b4ae7e87f155b0ba3917db28638321fb3b3c661670505603aec6a92d0776a550971ee52d68b15a8293f28f39a84231e050b6ce59316dddd31221fff940fb846830ac316765b940d29416a95807f7a0e73fe35f63dd0a25 +Mac = d78285ab97dffed5f16d00a7f277eee9e9bbbc5eb14fab10c189739965fb3dd1c196fbe3b01363260bf688955278884812286dcf81c25f1eb17cd2503ffc7acc + +Count = 288 +Klen = 139 +Tlen = 64 +Key = 51f9ab865146187fe650e49d45421fff28c45c3bd8c465458b762d93f199067e0afd14ec3a42022c9fe2f321a272bca3cc245022dc917b8c16b5d471dd3bed6684fbcca762c29f002451abed67a8860087848683b126795f4056963c46a8b4ea68febafff04e57c21da5f348bd6ce5ddfeebe6a6820bc584b1605d3a5366c5d35e0bc63e0c6e923c31e7b2 +Msg = b96ac1ed835f1e58f5327338fd604fabd399bb65e6d9cdf716d57a512398ac86656e94d0be0142d4cec27327658aaa103e818290ea40429f0a32b2b9c1402d9969adf845853ed24af79fcc4974025bb23409acd0eee6370603c19758fa59992c2cef9352c060f743da9127a6100f8b191ef7e22dda14d5b26a48d236b42d17c8 +Mac = d6aa880ea45e0ab267e47374598086784a7db2169043073614c4a1917e90e8dd2818f63bf8a899d0bc615e60abc57d45e20638dec691b4750a36079a330e5270 + +Count = 289 +Klen = 139 +Tlen = 64 +Key = 9cb3288f3b04f0442f2ca8cdc41b0f39ddf93f898868e312d509a422e941e4e64e3daf8b8d33eea4ffebdecce07fc18ca55fd47f8f9780b38155d4530fa53383d7804a8c14054539700643811ac607651901f01ce02d2b6e2200275ee732490be084e2d8f7015ecb2b84be339b7a488ee0e97ca9a0b24b096013848a9a6f8f4610525db85fb09f22d76d36 +Msg = 96a83010f9d4f0405826e8cc941190e07c33d933362db680e1b1db3a78ddc47cf9c7fa3fc75992cf4d5ff680e5dee89cf8a7c3a1662d04a928940a2a340a1adfa05aa6060bbecfcc39f52806fd96bd215ca4545cef62f2348969a1201af7717fd38abdcf8baeaf1f621306c7a4e21756f05112cc9976870a4c582986f34cd143 +Mac = cb700e68aec9448b67ab8e15d491aa070242b4430d6c70db6b736ad66756065f417c0b201395e203c57bd7809272ce34d4dfe1972b7c5277a28d71c7f52c32fd + +Count = 290 +Klen = 139 +Tlen = 64 +Key = cf44b9d057cc04899fdc5a32e48c043fd99862e3f761dc3115351c8138d07a15ac23b8fc5454f0373e05ca1b7ad9f2f62d34caf5e1435c451f3d927940e8a92c805ee3e754117c45fe0de0545e7d1b3f0b71912aa2deef5e5ee661a6e95a06f8727ea158000c91fa067b03a7378066619bd61f4ae33b7ec2fabbf1d0dc3078c3ab0a5919004c159f7fd79a +Msg = ff24c8943c8e6d3db40c7ac16776f756c44803ee07a3c95bc594afb7c599d0031261ad0e4ed41f98495391b8d3416b7bcec2d1ce87c28e9e463a4b3d23ae05081cfbbe47654f7254ff794c008c631a3262dcffd1de9b67e4fa8140f8221f68c24478610627084cb8fd0515603be4ebc3a81ff3bfb4363d770cf4f7b06bf3e07b +Mac = 2c537d0edfa86126672ca6f0081e8c13fd161510d56c0bb6ef015ec35cdcbadf4fe68594fe70820ebfd99cfb83a1fd18febfde2743bf408479a52c3334e39141 + +Count = 291 +Klen = 139 +Tlen = 64 +Key = 0f55624e40771d01c2643c2bef1c97d5fd0eaa1ede76953064e96874a92e9e02ae50e75c42f12b5b26e1cb696ef02af12a006c14465e7d9eaf525538b7f47bdfbb42c89403706e55e97f394d3e111448e97cce69d11d1e1ffeefe555fb5bb4e97e528e604a9aefd855650c3d26285dc082aa5985475c819c98e89f333a0c500a3ea9c027e117b5cab0bccf +Msg = 0f565c68deda3bc803d93246a1fc18ede3cf16d1e217adfcc965faab37eb39bbe48f895e883eee12f8839cd492587390dc3cc6dd688560e7fbf8c9aced97c56cd3ba1e5a5c61a39879c97162c13d718a132f22247d8799825c3bc663c520f8672400a3c623ec6242ced3385af4541bc1d0d1b30ee8c55fb536577936862fdb94 +Mac = db88ffd6256ef15c09d67244d84d4ba61730ee6eaa565cfcc4fe587e6a950cbf69a7ca19ef489b68f8dec772550795198462e87ae414ad604591d765b6a2ad0a + +Count = 292 +Klen = 139 +Tlen = 64 +Key = a50b14fc2b1852542a497dddb86709c49b3285f26af9d93fef69cce2d0a3c92c6e91e2770e79155937d2ce1d5a57ae73b95b8b66815cb88f39da868860690aa4520621dd6ca7b20e701633632bfe6f0d5546863ab89f354495595728437bac3b1912da188ec9b1dd9fbab3977184d4fa389e7e5657ebd8c6c98e48abbfff37588a5e140fbc089b2d8a6957 +Msg = f4d6aedd9a34e0a1822362714d4e81794b53b266417678c16a97887bbb612cc96bc5e532b3a654e5d3d65a5155427ff09569906381138cc49e3fc2384c5d33c34abd3d617c487b52ec6ee7b5105f41584b7eb5cfb512b8c31f3f338d5236e30398a8ff927e801c8ed7d14fc5040d915a737967d166ddc266f68023a357530431 +Mac = 0d99228df5e7ec538be55d8852a0c4ad0ca61befb94f988d2d3cb68c006c0fed69b867e1a4f2a50348890fc1ec82c46ba72fb8d585376037f94c9fd18b67a839 + +Count = 293 +Klen = 139 +Tlen = 64 +Key = bd619ca4cf382df22b99f1310a6498633bbf0100220a578e011681727691b90645c57aeb5883a0a10459cb548e0b04f9ee41a39ad27e6feee651082d53cf82228540538232196f7c982bb19106197da69d0fa45858b1878f4a52805627677dea063bee1065e4e2ac6e756c9079754c92d190cbe1bb8de799b480b094fb41f2844f1c143efaca40590ea0c5 +Msg = acf723e38ad26db1560747fa39674eb6d8546af98625a677b7cc3f47b8b5fae79ef2bb817d96546cda5e9bf66297bf61dc3bdc2b5c5ecc93b9c8415842e410c4add9d0e950f6a42b945355fea6b5a4f16fb3deecc717b0b5e5873db91a656e0ac0f389a46dbb06f46c2e9e9b6d8ba46f7b0298c22f1afae823505cf3aa00bbc1 +Mac = 3c13c0897926d1d45c67f68a4e1c1bdbee8f601affa0edf8ebc6b567d920962fb9f14a4fc92276ee1a266258ea7f71e09241225053edbeb7f31130b36022dc13 + +Count = 294 +Klen = 139 +Tlen = 64 +Key = 107ed9ca1f16fbdcbdfa5211b1a9ec8d9e03bbcb1f0a468715e99fdb403695a80d742a37afdc4820715daf6b4be132f6b3d22316b5dc0c8146f59f6cd69bf0f0245de2b2569ddfc34994cdc526973d503698e594f7ef503f6f5bd4a1c043c50dfd42e8833ce32a8deca9926769537562ce5de98a0bca7b87372125c127b67ac83f2a24f28835904603a3e8 +Msg = 204058177a61aa45bd666bd0f3870645fd6b9330cb91a89ad3f072cfbbda04655926ee79de8e123c4e56b3af342fcfaa935aaf231f10bcadad22943fe9dd5d3747305a9e3c11bbaead1cba91a87de36c5211b39c20c865404a4e09f77dead6ebd1a6c10efab04fa3c200a701b73beb9320d7c82436814c5991bbf87fe1ca1787 +Mac = 1bc503398a25223fb9e93ea65228d2727b201f0a3fb544a300dc804340b6ab3676862b6320bce35adabef387ec628da38277f7de6929c44810c47f2a7acbeb03 + +Count = 295 +Klen = 139 +Tlen = 64 +Key = 8aa3ae798494805441b45a59bce230f9b2bbb960b15f2456727807636879983799241f48ad4fabbd44e7048b8d35e2de15605cbadc34a3e2ae21f0f9b087bbe73a312e7ee41fd95ee488a715971f118b5d96919eaa605a095abc468a45ef104414d0c362538a72fdc79e2a3f012725c933624053436daf921e4ff05f4f39fd15d00cc63b1f1ade63953175 +Msg = 20d04970ba4d2cfcb4c4e1cfa3fc6406011e8a31e869e4ac1b28e62d46e1489987d0ad1c2c938378bf272a9d4013587bb1e3bc14d8d8e1d540de562681be0c40c195ff3e7b8518777faa520c3a501dbd38630001e72681559e2849d4dd758408d70987002d8ab5a2fd36a3431b1a7a759e849d209fbc8cd53def095ee46c799a +Mac = 45560765e5e4644476206c7af9a2744de1768b44692a1e38567390eab59b951e6c311576b8c33b8e8769149c9bed6b5e1698ee209a8b464e032f4bdef057065c + +Count = 296 +Klen = 139 +Tlen = 64 +Key = be0a902d7d0a1a31c76982a5a4612e27ce13c887656f94cae453017554f77e08bf888ec8e8131fc139a5180cfdb1314ecfb10781521070f723480b9b0c481c7b7b18978332bf7b8b3f6561952fb5554f7f85e4e053b976e06a64dfa8523130cdd802d3e7c3d6d797c2f088c8a2364334c4d7882acf30518fa2f1a2248d7b6206c08d697b0320daeba88fb3 +Msg = 6e3662888bd3f3d6d980684854d93883dcd2da3637a8e6aa5618779bd9ced347d5204ec4d4fc6b961d1f458136882d9ca82d95a702ec2d9e20c44b8ead4590a8e745c994a2d5130890744398bf8284d063f74280d6544757ddda24b32dfad3b82e0e9aa0fe463251b9e52935f8ad85469797aa68bcc87efc14c1cab260d6e49e +Mac = 4a87dba3c394b7f9c0d55041043e9637bc5713a9664daf4077a37fc55ebfadc5fd04a28a9bd13caeda0a7db4ea7a01eeb1410d35a821b1cf4e8c66475549f43d + +Count = 297 +Klen = 139 +Tlen = 64 +Key = 6dfc8966adf3c592d0d2895f5ba20d3cce6d7eac6ef6e99d47a75bf672cb476f94fd27a5a7e0666efd117e69815a5eda41290eb5294095f911ad1b3ffbfd4b9395adfb8206e10f74e6589a3d8ea047ee9386f8f18dd1ac551d30a6662e70cc817af24d26505d864f959027000adb9120cc6e83872111f65871164591938c91e04bb664b910bc94a5129f6b +Msg = 97449ca6c272484156c84d60b7afc1cc59546a46cba1df1bf56beaf89eed31003175151cc05ddb92493d09da385f13ad2e73375e0184a66d042be45a880371b7a25ca9812f34e9b01663f30dcd1594441f7d843a2cc88da0b150efc9891304b87463207e18dfbbc345a1d2a27db98abab4da17815454dcdc8442d3edaa05302c +Mac = 2ffef9fe1a0a7ecf39d730564020b8f0ccadca49e4c1780e193e1901a19787db8aec9d7af3b9b7d5a96c2d948f81d89b0b0aa23e4fa350c3d8983556e1be2f4c + +Count = 298 +Klen = 139 +Tlen = 64 +Key = 1f2855e133cefd5e9e295a3c63fcb3f9185b5fdcf56b7ddc2b69e5bf76ed5e7ff67011f13b0c3da89f842d18d88467f7cd2a27e9a9c40b5b2edc10af4d72bd9af3889ecb25e4f4ce4f11ab2fd9a78ce2fcccb4e2d4fb4519b6045b80c3544287bd77e6b71adb8a9657d7bdcb8feb8a824c4af0129d9592dd69eaae78021d530dfd45cffd427b67c95fde4c +Msg = b55e84a2c74e837420120c9babb9813dff4d545833587664f4a71334d64e7c1ee8ed655b8b3150b0849d494e4f8ad4f8b66c2463a3588de233c33c430b8d26f3ef3e3e69918febc2a62cb9a93fb84f7a5711a1a7a8d6665ac427cd5c60ac6b35f3d9789580703cf2af47c473234bd90d08c533ecebdce914cf5b2c487db5352a +Mac = 61a87e67cdb1cc9b3aedc912b28f086c0a23cb5be98a51d60cdf1ab3e0d288fb443881a10205778c6f599d79dfedd4af27f1417131d9263d995748df45342d2d + +Count = 299 +Klen = 139 +Tlen = 64 +Key = f37bfaeac36a4ec9d379ac509b49fe50f85a995a89d8c22f59b87178bf0455b78373177e423de3df142d25236bf890be3fcd6583682df2154bfd599eb8da92c313acb3d7b27e6f4e878ddd75ff9e7b61299573251b441d499281c477d87bad76eb4e555ddbd4fb0074be5eaf1de4c82000da4ba96bc44bb2766b3d6be790adba5280867885e88edc23eb30 +Msg = a781be58853dcea37c1a30ca5db6e16b9ebdaab800ffea2670c695652b667d952615d0b7adfde2614a902db6e81c9796389ff31254dcc923a3ae5a9bfc9ddf5b0eaf12c7ff80ef775395bc2f10ee47121fda6f12f610e5ab74fa34d10c54ff2726f68a71c2ee7d4c5fd2e41d1b5579471b1726a12dc2c627ac522cefa5b4665f +Mac = 66dadec2dd4e47418e8116d5ce4c2a9e85fb82ea0a96257b661d5ee9f4b8568a0021602f698f20b5c3c77d2533e1c6760eca0abaff7f1cb0834cc5064b19b102 + +Count = 300 +Klen = 142 +Tlen = 32 +Key = 1bcaf96dfdbaab1028396865bff3fd9a87a6046e9130aae91aedb54aaf3fc542956ed95f67b316cb018fc4369d619a113c383bfd48e600837756f805f21f2df4b75829443bafb91d54b5f1d4577c70197d64e6728c32d3e8b36291ffb5bf94ec4a30f103c2d51d6feb52f725356b091b14d20bb4a63ca97f96ba872240478191159d3784414ec9278c0fdf137e57 +Msg = 9d1c57b3e625d6a7f38462459c442efd5d842c0b576c3104976654af9b8a97171259c9dee4afaad472f351c81f91cb9f0faa05a32f0aeb1d755ad225699613b9e4c2f90d17d9de22d007909af917facb612f0012c0bbaa69f5a7853c91d1467999beb1e7888cb9b89427e96132c002a9dc7be6001268b4139fb5359d1d227780 +Mac = ca7f6abed1c2252fb7f08706d119fedd83df9e09c12e481267ef733bc053f945 + +Count = 301 +Klen = 142 +Tlen = 32 +Key = f473204e1113981c4bbae6ab7207fabb97d6112a7114346800d2022b6f97b0643ffb4e71a2714c9425653ca49287d902156649cf9d409f5c8518a4e2740ad77482dcb2319cd52fbe29d28bf4ed964ad52e627bc516c53df759b6822518e01384043dd5f7c6e64a829f2a5a024bdd541c2cf23074a44d171fc3d2255a22c26d7c0e473d29e94da4c9ce9432387403 +Msg = 61a9c83487fdb8df536e2a79f5777f716e2a4c92adc7a634f88d9db48ed006218b4c7e380bb9ab9392a0c51dac6c55c9d0c43d848a18f968da7a2432d7b03ef69787ac11536a0060c7327bafd840d07479c92bbecf727268931dcb92b9025e514f015ca6a73640adb8cf5517c21a78da31e21f27c4fc9a9dee1d99bc7defef9c +Mac = 9ef822b71d2b1f44c0c478d0a16e48ae105fc01e4c0cc52e9dbc6821a1ca1e3a + +Count = 302 +Klen = 142 +Tlen = 32 +Key = bab50194e96f3edd4fb82ee8d860b4201440934a836fd35c10b96793db4c0cc03bb574e3040ba4fa056a9b1bd5a334c1d0324d645c71294c710b13a658b244d8b2150712bd0c1b25d3165999330696f904f9cb72978b749ded4b3598796cc35b26bd02499cdb6b06bfa4b18979f0a472ba7c559dbd277bf78c611590c6e051f2a094adb22ade5c44d4fdeb1330c9 +Msg = 11d69a89bb195025ebba1bfc00ed6d84277bfc73cf66cd815dd0916f211935488948b5e795ac31b98bc342c4ec5a8ee8a6f69a658b73e09e02eb221dfdd9fdd62b7ec1b06e8480418fe265d931ff47c3031a7ec73ae9f6f33f80829ca475729f5d4267ec2dea66465ee02c44b524c19ca5af50a0c31136097a5959f40035bb2a +Mac = 6a3577b4161fd63d6b87301c41e4a62dbf1fade9fbd73150e03e1d1e1dec72e9 + +Count = 303 +Klen = 142 +Tlen = 32 +Key = 232bb8903d88e295eb89fb358d617dd28c233eb98f2746a9f2afdd8f74cae9942f797759ce119881fae06e71151386532bd7686125bf6d604066d16abe5509f1dc27570103eb9bc542c96c4dfce9678ede90c7ab148c3773bdd3e42a9c67d58c107c7f0f46dd9469ad8c1d52aaa8c88b8e94831fc55649e94f3d3c5675c7f56cb4c1180bfeb02b732270a807881b +Msg = 807e05575f3ef05a4bd64e0b15278fedbf7ae63930679cde2bf7a9c68205855b87ea3c4ac459c186ec878491118f46f716162c1b682a1335e970249c2d7fa841e9871d7ca836890cc0dc0e5985cdbffbbc07b2805314566a4f32077805b2e0278d9ed177749ef1f2b11c15ebdaa7a10498959ef359ed0d8544847be27265d614 +Mac = ef070024ec611efa3315566a486300a0130447a3b25e25cc818bedaef568e4c2 + +Count = 304 +Klen = 142 +Tlen = 32 +Key = 88fcb4049978707d6c8ecae02ec20005aeb8fbbec101d452e635982d264248d53e032420001529a5f7e6d9704a0e3afae2e32158cf47b0b2e8c51ef7b2ddb6cf849b23d1e86feaf74338384eb9a2def24bb29a3a429f9830d1e43844f6931241a1ec387f182eba5b9aad70e44225f3d72f4eedcee2b093b4e7b96f7cb80d6312de1deb9259fba2b9426d0899af40 +Msg = 97115f35a4f5d6a41c7fa2446c3aafa4fcbec6b505310473a30e8bc72b2577acbee414921ed44effc166687c24f0f1af62f3f4c5059f70131c9907fc8efbfa15ad9d55870e9367b599f6751fdce8b086a4d26352cff071305c10ffffc4966eed8dc48cdd1c380b0dcbb632f53b28d272ece37c230a2cf1138afbda9976ffb97d +Mac = 35ec99a24129c23e90e4d299dbf1eaf4b76063d927ac7362550ef20c7b2de0cf + +Count = 305 +Klen = 142 +Tlen = 32 +Key = 303134472adab1a8be3c75e3bc73791991ca2d0dc92f1a32d2e5c5090379d7a9dcf77c9f905d09f9c050e19e8a0e99e1c2a45a557f6187e2da8aa018f24f67c434fe41c1d977de11afe01c2c1d9a29986173e8ba1d1d97ec12dfaed02b8a0ae3bdaf4a550d0f7a181353ef377dfd7169f79fa0e6aa4a9079024ab7d6b510092f01706102350d233572111f64b321 +Msg = 6d7b0d59dec1b52e30970ed18231cd2fdb0dc8d36c255db71569125a2b6c7912795e57a4843a0412144015b4efa6398ae88b61d1182c24d46c5a6105602c264c09f1d09f596874d39f347eb24d8a984dfe2dce94b79cef236d89365fc88e29c2271cc273e4b4cd1ad95991f22345b22025db5643d0dd874c22dfd990edfb4c1b +Mac = adfdf26fbb84fc8a43bb56affcdb0248180ee613cc52ecef61dfd18d3dd94fae + +Count = 306 +Klen = 142 +Tlen = 32 +Key = 86f7194925ba3118aa93abd532fbaf55500d7d295d895ec50f1ed9e24de929204239eff0b19525b188005319b77b05d742cc7c76957ea485192946f504f37fc2755771d6c025382a06ca1f2e0ad2146b3fab5a6626ac7ec8d6558cbddcd9829a46d905c2fb7353ca4e7b79dbd208c6586f337fc1b51bd4d8712d13027ea21cefde48157d09865fda859ac8e9b726 +Msg = 057df9cea6836a2dad42f66e7d5e40f5f6074b0d497ae98a0bca76ad89e0c5475cc05b213d0fdb9c1ad2c2956979548bbc1cd7049504fe2c7c6da8c0508acb2adbcaaaeea85a4f4419eb3506b4b545cdbebc03580b520a2d14ddb6824ada205daa224ffb926cac6fd314b78b071bf903256e39d0526bf3d3faa106bb20d7ad28 +Mac = b038ea88226289a74e946cfd88d5ccaf290036160c27e7ae512f7d7f0d05932a + +Count = 307 +Klen = 142 +Tlen = 32 +Key = 3464e7149f386cc608bce78676aab7885c7909956dde4cafb194e5f8d95924d0d039773e920ede9141489f4776ea3b2dd5d5a0c8e449a0f41da9a2cb417e98c8f0bf312c77504fa1e9c8bb1e7177180ae6a815a4a023e7a28af6f7187975d79cbc807ba8f504a64027c4a2d40f5a3467b878cff14a74080222044aa92846cb945d03be78b434cbb423c5bc31f99a +Msg = 39b67d9e4acaac11338d2f66ddcfe708dc6998bcac724a793bb6ef79a86347904b0601bdf5b623ff798fab696b63767927ab62a615c4b0382c58ac5cb51a8f7852b6a4bc3e07aafad68b7ab75915e982ecc2f084e12e0a5938e8de1e66231ecb56aeafc3ae260aaa536ae2772f4f07ca32958a7f961a2283684ecee644e7bc32 +Mac = 2e8d890e823b46ae168ec19c67e777809e8f94bdb0119222d53106e470e060e5 + +Count = 308 +Klen = 142 +Tlen = 32 +Key = 98ef836985b9b46eef4ec02a5a6f730b0d986d00c7e17582ae2210d5885a528b2d52f54b3c7da8d00e23a934e8be966f75a5811b73e7427aac7a11b928955476a15ab58137b878df65900b153416dfa3ae7b77ce96c9bfa2560e9e3839bcce35da50ec93dd32cba4dcdc0e53a43ff6aea26278a1984d93049425e0d923986bcec27cc10a95b24a255c51d978a200 +Msg = d0c0498f4dd2b8967cb7f26da95cc2011cb7d4a4ed5021b31a00ae76d7f876472506a4f7a614066db0f2bf90a0553c68711f697f8de0248ee29df25539d1f0cbc3b20d77f5b5771e9654539e170fb11a22b1bf5775d43c66f1a73084eeefdb3ed24cebd9e2bef2f05867165fb5930b6058f53ef4503353856fa6d2c99f5b1de9 +Mac = 35a6692e0928dee1d02af26f0b541019c0b517d387562e27d73abd6e6f66107b + +Count = 309 +Klen = 142 +Tlen = 32 +Key = deddcd62e35315ca2d328695b618917d21af8a99fade092e3e4191c91ed76f8a00fbe5c3c79688c25492e7ea4c926d091ce089e53ba60b18af62d21ed394a4ad57b95d44887d4c07d22ddaca836b6c6cd1258b661fc843a37cb0c8936de4607bec007c0fb0722842afe9a65de20b564e4867da432daa7678ac15bd4d732e6a9cc6b68c49c7dce61bf4b095caf1da +Msg = 7bc9db647d4a08111fa66bbed1a090591cabe8258647c6afb68eae03d80acf1f43cacea859b5c5dcaf1e8cc86f9837bbfa0bdffad107a6b5b559f53a0ddc08698992ad6805f34898b0851bc76dadc4a779c5077e4e6ece20c8286e1b87202c319448000b47ad992b6806a02394884104e202e81ac72548d63723a20c0d7d445f +Mac = 2bf0422bff8e360dfcb02f8a80a8c3de837f4f0af5a3f48331be6f30bba000be + +Count = 310 +Klen = 142 +Tlen = 32 +Key = a5f018b221cec80442616b4c1dfe51a727d048ba40ccc049f0e72d05f087ada6ec38eb3a87a143bda0b627e9d32fc14f4338d9a7976afa6543fad08d0930d5c7bf1b2db65284cd860b20e3c411097273306f3d5cd88be7a569d558a5ad7763f7a601a5cd8b5eb0870d076985de76ae3974de3c800b19d032e9e28df7e5449e5d2a521c28391932ea2dd37fd3435e +Msg = 581bab213da5a7a29b1ebe1754f6708d87da8a32fd85a6c8c4d9f154192e31168cea06be5e516fdd2e9f919ad454b4a68ed08f725a1fc59fa216afb61e9f5c19f751d6392844a70a2a239cb4d082c98c7072cd424353585b0eeaeae202b4dd5be179a5f963235711d8d168cd0e28b72575e9ce0b81c965e6507d28428d14bbc6 +Mac = 26e309186f09e64b23db3bc2adb2ae4de485cbe1df97b96e304d4ef9767896d2 + +Count = 311 +Klen = 142 +Tlen = 32 +Key = 14c4e7563119242a560883d2546b81a3bce24ee24f78dc87b684354074ce13b918f3aa1bb70bc9d3998821943361e49f55719342a51a119e4c2dfbaeef0e3c85e113dbd7972e18bb5cccb8af45fc9ddd68d4999d4910843a95fd8cf91396cd57d7ec2293b9cb3a6c059aee2c7483d1e55bd409fb23a55ee2f9bc9129c6adefb8624525560529566efebb6b12a73d +Msg = fd43f5fe73922e22d7370c60de1f9b1ab2e0e9c24e927d4a2be025db1c5ef5c9761e8cc7757e9957db439e85daecf4d53440107aa12a04c871c648ec72bcbbdb14cde588cbab7f5ab50e35dd7d04aab87f88bddf2d570b09b1ffb465d43963881e7888aa3ec2e813adbf58d08f10c5aadae17859b9c298f433b2f1ac087df3ba +Mac = 6f8859b69cfee89dee650d16fd00749c9f660e6fc9b927caf02bb891c812def0 + +Count = 312 +Klen = 142 +Tlen = 32 +Key = 63dfb4078cb38bcc97bd250fda0e286ecd4e64046a985bdfda8b01b34d9dc0cf2ab3bf5168ef64963bc918f5f4624aad2214b61bfe4ee731069ffa23e710a663a0b779d0e589642bc1707aca809ef590cc207a1c16b69e4138e2a8b6583f980f0f1469ecca29947171d9d5f6476931ff1298386e7b7788f7b77b92d567d1a1bbbdf1180ee176fa51932db0e1116c +Msg = 1cc6063e9ca0afe0201a714d023517b113938ed73a89a5e55e7711478654b4e93f8d1fa93f10550c47a3d12f4e7bcb01db0ab8b0b3181061b415532401ae4e275f9e9b2adfc76732be81778289326dc7841f48934d812b0cbddc5fe60f8c9a8e44a082a8c5ec6dbc4b5a6b2cfc81866ad779486751ed7e4f40713c73f9162187 +Mac = 9a3819ae5774023c1d7deeca6f15a732f87671b5dcba791ffa5340f841b9015c + +Count = 313 +Klen = 142 +Tlen = 32 +Key = 321e8dd5b0b7c660b3090544612c5476b0d4e17ae0cba47a499f429556983279d2ec1e3462368c475325bdfc9671d5fa09143d17f9b6466de4690fb08396a8bf07377778a447dbd14c771024bd2353cbbd8446eda42795971c9eda0f2575be655c68614a7cd2fd252569c664dc291410548ec3a5eb06da2078a66c59441cbc9356e5a452f4c0386d6662a663fd6b +Msg = cfb4c87716df82d2a97ee4333417a67fd5e66be2da89a11ecdfda823aec936e17f79fa5a064e7ffbce34542c6ff46a260fabbd04297b361d8d80d092a806fb2306f93e47159c1f7b2c7e47dacbabe2ee251f45c6db80d3480b0c21c989d058db6c1adb66cd322afbcb450764d2a2d7801e294a4e7aff3e474e87e1f1d88e16b1 +Mac = 4c978f61005e9a04a733205f9e8f2f3a40b8266206558bcee20b5193792fdce3 + +Count = 314 +Klen = 142 +Tlen = 32 +Key = 36dc8b8b97c105dc9c03908fccda0e4844c4990d08857462976c41b2c2d974f1bdfc078077df705127a7d04b27176df00655623dd9f195d1d123ea521354b60dc3e077dc621bc24d5b927c00d8934d51daef523789fe126cc9e4b4cf0d136f0670114167027ce4195f4bfe76875698b4e919d1c5c1b4d37ba43707f0591d8525eb16cfe9fc0abefd5c5abc75db69 +Msg = b5fdea4779f5787e6b947d0b3333fcb115528b816b3862a353dab253a5fe382a28a0119f0595d0cd7b6ece77d59fc14999e1906003d4660db1e906d6a07f5ebe574c5ec762ff0ab40223ce132347127b8e5c0f13605ee153bb37dd0fbbe024b1acc978c67a7b4fbc687c26e9057218d05d8cafa06c1efafed88be004df68b38a +Mac = 0c27ccc84bf1ab92f42edc8188a1a0b6b38ef732ffda929f767c0970b27ec9f8 + +Count = 315 +Klen = 142 +Tlen = 40 +Key = 750d16ba014522c2ab475e8638535d5e729fce4a284aa48777917560484520471a7cb32402888cedef25be7733f6b68c3f331e3dae9c017986b130dfba24e5d1f38fa7ca8f636df1ea2006eeddccb8fc859e283f46fa79590fa2b838df2a783188acb953b3be0ff524a100923fbbadd7cb47b5f9f74c564c9acbd512bf3d2090613db3687381b822240e720c60ac +Msg = 6e9aef113947fafb961eefef891ea3f83ae018a45670ff6fb35b7b8033092893ea4d5c37833bad39df3ab360005a0f5a26e7abf7373e449564df26dc0ac437abd6f137512d4d4601cbb0a780aa3dc32125f271f35d7d7439dc51451a78fa149a7aad09c90024cf3aa0a953b74e70c9338029f10090d6984361da61a44553c54a +Mac = 90781faa0146879a3645319c5390bae2d0ad0612bf2e6e7dc741e7c74b2ab65c520403410f1eca27 + +Count = 316 +Klen = 142 +Tlen = 40 +Key = 3f64c815f2793ed4933e374950f77e685ae3dc21f309d340c9358f92823d1a499888cfa167d111c484293deb513bdcc7ced41e1fb2a384babb3ddc7f426372db128885637a8ef8bba1d14ab61a66c8beb8a50177a4e47b9fac86a439de350bea566bd0a354375a80923e47f0d400a917c05c6f70f05621b74619d1067f384e3e0b399aa81c549edcfe781de2a68f +Msg = fe7ae0cc9e99c1b0a2bb11d71db429cfba959e655bc80860ff5c086fe99d895fffe8459170bd8bac9916408f2af7258a844757cd66de1c20c9dfdcd508486efb44c796d507d0cb8b27ec3d1eee5416a177be00a75b77e8f88eb2028883200ea997c0d97facf906b414e60e6eb2f1867e5ba3a1db82baf54e157c826ea24cf0cf +Mac = 4bbba9ca72b720356a2ce80f32ed65f6988b8769721413ae44014a72cf34efc965cfaeb44b294445 + +Count = 317 +Klen = 142 +Tlen = 40 +Key = 696b28929d149b340ffd609ee488e7d420748133bea31456012013370560ad9699c8459f517023c7d62769f781b748ec286a73de38ccd45f04b37f875d7de44e639948399a49763941a5b1d0dfe4ee751ed7403adcb694ac801f9efa8a5c135a6fe519a9a325fc51f781227025974137a9c3cf90d3e8ba031b6d5adab485a48364b4a037928f1dd9a1c3a3217c58 +Msg = c66a563cfa22744dc310137966f1488f433efaee105f4352651c18ed7d542dba3bf1130e6b1ba3704baca0aa49e498200f5f0b61bd43d0fc75beb3951db0633760a48cecf605408b268f9bd28903a7b4101f7df448cdadf3dd9be0c75e6bbc8c3f6b08ff244811495d9f4c18acb53cf44f6796d13a64a4e0a599e7abc6ed0061 +Mac = dc6891c9ba1d783cd0ce19c2e009ecb70d4fe5f99340db8dcdae1f51c741781e1bbd5bca92af6f5f + +Count = 318 +Klen = 142 +Tlen = 40 +Key = c5dd58111a50eec6d5d19591733ad0b8b39f78834a2e0c43d85948931b38f9de62280f2245b9f4f394c71cc28de6de5f520482bd9a499bf6a642978e773f94fc3ef97566147835adeb347ca9c47b70b62312ce6fc01f39b98046d204a31308cd3f98b267ed575bfcc262dccf81c031c30e13852126788f964eaf217b097cfe594e4cedad391c0be8019765ba2a7e +Msg = 44c8c5204a8d2e01951e67d1f2e2cccdb7a784d556e6b1cd3148e943b06aea5291dd89c68072ec80e8b4f91d08b50ed2490ef39acf210d944ea1d4a61f55876793181e3c872580c13891f66a5919df6a631ea6d32deef2ffbc451c305c14e673ef806aca862e50892ebe44010d95a75cade085c897d5c8d8243cab26902f713e +Mac = b83b4c548687d6f09ad25065657faf047989e52ab5d4147eb09a1ee13e69a1ba59d5e3291a2e9b98 + +Count = 319 +Klen = 142 +Tlen = 40 +Key = c8ce9ef354069f3408c9fe64d39649a7d758d3d71e4608818808fd31081b4cf010761e0a4a6e891589d71d2eff6cb986b071a31e2696d8ce671fa18c244267eb33d0c8e24018ebcfbf0910bb24966be0575f3268628df5786dfd2e6deda219661824c5029ccd6b6b90a60093abdd06bdb46aa74039f2048784eccb5dcb020767a7ba3df2c755b4f0e6f8143cfa09 +Msg = e83b5b65f66715b9b53e9856a845250eabf61c48da130af5b039e2c66cb88b9cb9a29b418d226355520f2b8b44c1be151a242a5ce80ac1f544c663d0a8f600b317a058e7038105326fa1bc05512bd0f53a7cf76f387a51a8fc27a6d43876f0984b5d19c1202b0536531cd32b962a609854270dea9409c3f81f853438e5df6333 +Mac = b9e52ed0c04ef11f6fd3d17a35281cf18647df94a069a2a59bc73f007cba1b683536bd447eb915e6 + +Count = 320 +Klen = 142 +Tlen = 40 +Key = 6a53dbaa79037233321b9f88e341c68bae9eb8dc8bd7d662903f7a28714b926b43468ef185457d9c605e723e2e152daf3a17f71dc62bcea45365c21e1c9c9f3de41fccd7f1a473805981e25e7c1f3239d2ab26d2e70e5576a3208cd2cf186e09d5485d04c7079e0aa3eeb790d6471c52fec20ba2f46ab5000ad89eec91a646f89f2709210f55445fc80bb97b4375 +Msg = e107f34b5d86d7b32763d7345ecbb49b6f0dd5c39309eaae99e4cfd4e501b3bbb92d79c8b31a5e55970fdd044fddd0523015d76f7f78fd4d34af99f6fd3d732486b1280bf820d07ac0d2dd22913c4635ac2ee6345f4e1f02cbc5c23ceb3833cdd2fac8bc348073492815a1392cce616e6ac1c9ba3a7295f5e78e124db6dc3bde +Mac = b0d64486b92f3cf41e8a696ef372143673904dda2301635f139952587f35dbcc209169c07ffe065b + +Count = 321 +Klen = 142 +Tlen = 40 +Key = 796692a748b89bcb60228ab4bff874f93123ab6dc7c6d7ec852148545bb58ad157a83a5e186c1988869c5f75c026522656af16f9b933c772efecc53a8b764f68dd30540066e585b98eacaf049a0c4849d86448741c8a3ab070b39272089341ba74c58796196c08e7e21b236733f27feb1f0ae6e6da14572f713c5604b854874e842e7b261b49ca99e9b062a87520 +Msg = dfa3aa8e29f56b6d68dff72a4c23983a8484990cd487faeb6877692568ab6e6dcc0ce67e72d1b2016d8db0b1a16ceabd8db90e6d67a41f096e4369f77cd6ba23da4fcfa459120d9c9ef9725fbe9bcad80bce26292d6a8a927450e6946cab4756b2764f47073fe305a32a237ecb389f55a6c9c7874d60a44e21a7c64561b37ecd +Mac = baa1d4878b8aef2c59d782bb655e9f51b0c3210f39644adfdb8715a84cb9de57d3177f5a72ad5b6f + +Count = 322 +Klen = 142 +Tlen = 40 +Key = c6173613801fbde3223f883f158f609e86d5058c5ea5c6f275cd509602f0c4e557700cf1cb916eb6f7dc61a125c2a05305827ea2a24d79e095a711607810db379ee4d1400180ec637ca6f5163b2398236faebaac46140c6d1a92e042e9823ce9053b2d080c325e721b65e9a63ff96d992c2161b53243a8216c5665433b8f1083f23cca52d3f0ed6b3be0e859198d +Msg = a05cd06ae605a3c988227edf935ff24b38f7d5da1fc238acfe6e9992690c5abbeccf7290571163dc59976c305016ff8660f67524c25501c35f4fe2f19e7dddb47abbeb70d72f2f0a16872a4ee781328e5eb1208c4a7f4a9bc26fb10000a57b9e73a8a3d30f66ef9de8782201ffa873ad5bb03fdc5c45fb7a4d546c88388c1ac3 +Mac = f4247272014df37543abc7645722fd3ec0aeb89b6f49dfd36d11daebec40bfa3bfbb16f9d44b1c84 + +Count = 323 +Klen = 142 +Tlen = 40 +Key = 3d6f9ac66786d1eae1a7ffea8417e7cd49b96e355fd44f3f7a150fab6dd8343dfba3b262eaf3a6175a3c4607552b18f3a72e6357f036e44bf7bcc1a74102c36ae39bbf5d942d55f30676dd74778d9f5a836a42fc3ca988697c8b38977a3e5bbd9c5eaafd8cbb48468e5dad7911c5e2ca8376f46a6ab4a363b18c5ac33f1464fccff45c8bfb25e5d899f99c5d4b5c +Msg = 2b28f00a57d2b2cd36fc1a23cfa8f533f6636c16b91b8644fb31ee4c5fcff7c9687cdd91deed4e2f731e2894a6a28509e838f568fd9e0a8ca6aa1a067d964011209ca4c991c2fc97ddf853f0fc60093ff9ed1c1f532fa5cea26da6de7df5022e9cb0cd193af9c6edbdaf229f99898cbd72aa69a3817660f238a31a3e29934607 +Mac = 27f5aecf0d153a94598848d42272c7e36c0ba4aa658d2cd73c1ab775bd4812dfb2713dde11868ff6 + +Count = 324 +Klen = 142 +Tlen = 40 +Key = 19a76e3342eaa5ccfc6d4b92c603f39beb16703cfb4aebcf7b5d33b3dc525395aace6aee06c2b7cd564af4d73bd5e58cc48730cce1db6f991a8d841e80b72cf0e43ad895485fb84393be18e9895fef74f920b54b3856761bcfb725da7178320630b25e2ef00acfb41b915fd196e93ad9f4aaa8c1ea0327de03a5bdef95dc8c5ef4ffa7c3e50b24aa568b73964cbb +Msg = fdefd6dbd43cb817b132754633c0ce724be5572e4e732b7d4813ddef9489b20da9390df737ea2a4c73cb0f4aaeb3c0372dadb3ff35b4831e65bbe8c049f1e7272b42464e2c2143cc948586fa673153583939042d42c2b76eb50944e14ea772822a136a26dc686b5ebd68c09e83c1ef9f169034019f242d35e104d79acc33b9e6 +Mac = cf049f7c069e0954b9c76f22a517eca694e4e4abc5d41190b64943be8649da34dd9f0bb54cde4bfa + +Count = 325 +Klen = 142 +Tlen = 40 +Key = d7e34449b142a6e1edc5b7210ff3b0f0b7fcd01dc74ca495c46085da7fd862b0f4cec01a7267fe84fca7de42f08a4139e65032dcdb18265b8fb082162bac5e5827b589426b24cd05b4d074553a230a1a90746568cb90e3b1e69af3396516d7cb3940a8abe4a29acbdde5814136e894f97c0f71a7dfde620092c6df2a753e5471f216243b2408ed3e3f910ef02cff +Msg = 19c9441fd9382728e5de19e630b0cb95156b9972eed5bc1fe246c148fe683987873bb3858f5ce763c786345894594d9b655a2f83433c56ecaa5e30de9794d269e22aead3ce26f4f6dfceb1e3eb6ad5cb744b0020350cf0f7fb18f5b1b66ca5dad09fd051bd1fb7a9d4bd78d05d6ccdeeeb45f690eccff4067e7ef80984791ba2 +Mac = 024226ba95f0c73567a20f9077abc8a8ce1fa766dae177f3c8d39982654a0dee7cadf131f0c645c0 + +Count = 326 +Klen = 142 +Tlen = 40 +Key = b7c3c77899440e81200be3c06e411fb6cf96fdc3f67b7ef38a910b1be1615c250b4d9aa812c6c0bc80c0470c2263022c0c04472ddd534f6f44d6dfb7c3962881b318ed98898ee3e3574f5d829685281a2225b46c8625752d7ae98911aafe9b2ab90a077086033fa1aea06d4b520d5a261ae38ea87957b9d433b251531d017dc5240d3259918d9b9b8c9bbf8ede65 +Msg = 87b0745d346851f812070f3053c39a906c1123d9246bceedeb51abeb6e8ee89c68bc450ebb0ac77ebf3db17bdaf5b049513256845d16c90582edbd0a1c6a9f903b331304b0a1a11b68c0abfff99ea3ab7bc27b9899fa5c99e75a9a037781e812a71ec8883cb34697b599e601d945db7e93c9795eff9ded6fc5a02c21a65a29e8 +Mac = 8cab0aba5c0428a037b4a467c32d4d576ee3ba2de6d56c37e81d5c651435e556105caf703daed9d2 + +Count = 327 +Klen = 142 +Tlen = 40 +Key = f871dc8772df3e9bc76b342df66cc7ef7abf7342c16935fae07de5618541c67e2d8c5c9797727df47823abe67011a1083d512cc52f443c1adb763b9d14c69dbf17c8b94e0667d73e98cf8aa80e8a401369e817f3daa5f26f7ac6cd673bc44db61eec9bb4a70673ff8f35787cb81ecb98664cdbd4abd37f80233442c6e281fdebabc2acd262967ac2c41e1e685616 +Msg = 64c673e5532ce4debe2682a3d104eaab398860797ff0c4c09430c1caad80481a50163d51af35704e3666ce996006d902ce0055859adc4471e9f915cabf1619eb1817366f3406df5232594354e073c59ed26dada8b1151d5ad6374672171cdb25e151c60988a91b32da854a9bfa5398c86c55d0aa6ca435c38474bc8b5d997811 +Mac = 6427232699c7b9d67b7f302757a147f8d3e97895a4d6d547514cda97fa348c6b82afe0bb863afd04 + +Count = 328 +Klen = 142 +Tlen = 40 +Key = 70c06d7e2fde3dce44d5f9f8e5cfaf28a2f1843bf598ed211ae222862071d0b1416b0eac6fc593a52fc22694aab6551e01106ab9e2979b1259f481ace871ccc9d900348dd37fb361ac3af1967eb2004afd9d4990072dc6cb7d95725b52cafe7ce186c66a849303ca62464245884a15763c9e08068de1d6152fcedddc8603d0910106ac8ba989eda7faed01eaf106 +Msg = 2eba90d1335117922bf5cbdb66432159a97f9c952e89f180ed0c6a4e1af98888ef34ec5dab8d773adbf1b19ad8e1671e912499e08ab9930525105991217a487f60ddfb12edac6c663d165b4ab57ef4526d2cac2734426c22d4f1f11997ec7379091d849500983c3edacd939406010e1bc6ff9e12320ac5008117fa8f84394f9d +Mac = 170b060a7dcbbdb3ff6c2f6d99354748a0e9bf7ab801b91339252ba2cb842a19dda5cf637a6c389d + +Count = 329 +Klen = 142 +Tlen = 40 +Key = 01a6f9e95494bf281ed74fae28284e1ed375c1f5fc34187722f76beacb40030123971c9be7dbe9ae81d6d97d75131912fbf45ae8edffd4e8e4798b969f36d18da4af0c292955b9833425b1a2027dabefa62e03eaf2d2ba1c9a60bd4c97fd6af6ca1550f9e2ab36907fed5f83970c0d9f1a4a4463d155d0fc8cd38a747c3ed626def27075d98469bdaa566c8afe68 +Msg = 11f77655d955725a18ebfd1612b7a91d15a055280db75c7252bc0c61c4e45a691ad9d32e7703d6e83e06010c288ce92994440e0f1e2b0e37720a185f633fa47537c161b6455f6f17c348cfe4d9d018a7f9716b4b7310a8814482e2632f4f115710b607376cf1a6af4cba4fe64c0d9d60ef30542335f19418702f53b5539b0ad9 +Mac = 972ed368bbc123e2894aaa1ed0b3002f1f2f0f2ea9c3f55eb52418fa82c7878537fff0f39957d387 + +Count = 330 +Klen = 142 +Tlen = 48 +Key = f01aaa41528ebfecdb9fcd42948047bf9c2366861e5dc0a480451c95dddd8509b6f49de8e44a3493d1f6196de805309a4a64c506c30020a9fc2b5a0af2426f02a68c93c31766ca186d9db3ef771ca41457c7fc3f7ca6b551d14639db345c77e02aac35dcd129a804165e42d0270ccbb72c15b3393298a723675e620f8d75c62aa91a2b3afbddf7df33ff6e18e21f +Msg = 7bda43e90479f852717f4786b267ca874fed63805a2bd007a2027f9f29bba381d8ee879c72a322dac7b8eda52a83f1aa24b724dc6a8cf5bc0d1a26d8f106da928061ef239fcd8de0e1e2ffbbfbd0c20c7945dc92af916fb4f1088e0d07a74f28dbfb2288753f61ec29c528d10f976637b45d34a80f816677b792604653e62cca +Mac = 0201dbe5ef4095f4d4b3306d9b2d7552e0d68c591ea88368195f66280b80ba0f2f6ae436c423c5c9393aa9f4588b0107 + +Count = 331 +Klen = 142 +Tlen = 48 +Key = 931b7d98f580e6d2278d1b671117e6047a59edcccda191a81c4917de65e905e614cbcf79ca9fb3ea5d70e2b920d7e066646f2d833e88250d8b2025fc320fef19a9815010bba900c688b4c9eccdfcebd5657fc084108f9c0a74cbf70f614dceae592546865006930db0401828a0eecff98671ecf8ca1dbd46de31d53e7b0d694c2d9ffa02111f3468ddfc17942216 +Msg = 9f848cbef3e29e43766825a1c38dcca8f84eadda22d0672bf5477105c116ae8fa138412ff6dea24e1359f15b3a3b8b12c8b9dcfeac54743c1db95c838de5aa61d88c53c7c2bc41c8a0bea59e553d8fee80a9bc4df4deae026901020d71abff69ad4a6b8f40c4a23b845de972fcdaffc48ae6f5cfe2b640043fe90dae55b2d42f +Mac = 9575d542bc82ea5defa50698a7e77c4bc68f47fd332cb3eb52f009987a7bd289ad3837ee50360264c95467c76c0e8ac3 + +Count = 332 +Klen = 142 +Tlen = 48 +Key = f2af375607397f0793f7624c3fbcf530ff81da1d9fad72439f944f3d403de8f2df6891ba82cfaac3b1ad16b2877def8d080477d8b59152fe5e84f3f3380d55182f36eb5f7d24d9af7c99648ab8bea7ed4920887760f8ebce1faf263faea1b4a48b222d8b21be75949dc5341bfd08871769ddf642c769a57b8a1ece68ca826e5f9a323f879627e73abb396fae7ce1 +Msg = ebda765da63dcf09bde64e646505edcf8aa4213c67e80d925393f653decef87c1c26f7ac41d4d8896e41f05fcbc9bc0bd6bfd318fbb21a2764ef3794124748562d13d427987501e6c9e00839d8dae776d50056c45f4bfb7d7293e1d7815127c4c5a9f516d4a8b4e775ca7f38b3bfd4d8306e9088bc3b1a5c2685de645273fd8c +Mac = 0b7a197e76e58bb8b3ea8b28a25cfa35bd30c274d41ca25387d43d5ea7145cfa08ecca6e49e45bcf9a7ca1b280cc0295 + +Count = 333 +Klen = 142 +Tlen = 48 +Key = f6f938107a56a48534248a25a03c6f2f9274e2ca27c20d47fba589a79cc0775d3fc8cc55b2a1ec3492c47be2bee46f460bd16a503a9c483d27fcf31642f07f7a43a6739e1a9c64922505c9c6a66e0acc74a1da5ff1cac7a53bd80fb1a726b64c6b5bd5f59a8f352656af1cd94122674b34acd9003493b307a101857fb1aa435a1dae9b611ac186788b891e247547 +Msg = b4b884477b9691658c61733ecd7ad261e00b0169489b3f2ccde0363521d4c875c30b0b352443924f093def9e30cb75b3362b43c9b8937efbb90dddb543856b6951208883edd0319e962682f8e46779236fe1fdfeec7f1fe4999c9f23dc15b2b026a202191e66f7bafcc435343275661b52d739ef2c88aa4e3634856732ab25b2 +Mac = 343a2499482bcf541bc68e55eff02875eabd96b4e2adba90390ccbe7b8b02c095f29f7b681d97f5435108ef27265e164 + +Count = 334 +Klen = 142 +Tlen = 48 +Key = 409ea037d05a6c189bed16324a2ea9b0694838abbdbcd04dd7a5ab37e940a621d9abf5c094ed16eda5370303066aac8935d8a4118b4f1b5fca540ccef5acb7f0642152751782fc4e4becf2124b4805a089154c06ed6816a16d302286debf132109861e1c02200682b5934a25c2d29d3d8b8696518a0da95be9c356274c81a0fcf264c17efcd01cd30cb47305120f +Msg = c482a31e43855cee2527df70c1364e8f5fa66077929056b2c87b31901fdb22cd7ad7426ed54f83ecd51ee694a39cef2efb6757dd8064004653002ef4e3bcf3fb07e8ebdc4aae2aa98553736ab4baaabe022a8cc626509e3ef28863ed2958d240923d07324aab396e5e4fecb8999768899b7469f92b5f18e2cf9a3a4399b8a8e2 +Mac = 204cdc33a2b804bc8d1332a0f9b82e07c50d51c3f645898de4148a7005a13b9c7599e92a4540c2a23996b5547594e39f + +Count = 335 +Klen = 142 +Tlen = 48 +Key = 79d5a72e90bbbaeeaf84297bb7a07ad7f141e5ebf5b3597acbebc054516284ccdc24526b22231ee658d2674e97efbc8784a07ffb30c2e98f3d7e4ed7431da285711d3d287884db13a474e79a4c00f9856d3e9dbe929d564df779e286ededc08180e9f0cb5884fa5bdd9331c89f7a39b9f442c79ce3eca89b400505cb197be5a751aff3be8bcb82a84956ce3e5506 +Msg = 94c75d7a30d8b1267b527a6c0bba34a469ccbe077d1c6a6f46fd515ecfa2e9425e83d9f7ee020b8edf4f034ded8970f65f26014d80947ad4532007d98318d0b2992ccd48711adcd2ef8b11e3ee374da7795012693e1e95593fe7158dcb116c45ad8ae473a3684b7b12cd4a37f70ef23e211498669e02e3877317238290d7e482 +Mac = 68f507eb2c0ae009965302b8387196cc83860839d9e40f058642552fbe93cfd9765a1812b658d8f5056169fb608c2c31 + +Count = 336 +Klen = 142 +Tlen = 48 +Key = 52b400b5fe5956268f393e1418ea8a5329896e9ea447ed38cc2492d49ffb60b366bf0b0c8a0469b0a9c123eee954b0b48cc684f8c5518456ca1fbefb2b5557c16250c49bab2e3d3416916fd3da9f7282ec4efa6fd0ded192b0a78590ab145ee06ff0922c0ae0bcfafd318b8b92d4b70370a73acb6df7bc34a3424f5dc6415c56b525dd854e22cd49872adddebafb +Msg = b1e81f17c2b8e4654625f56ace0814f2c5b79317ae33ba13ada2695249fffecc70107991bb98dfa5f4cfdc0fd60fab2d13d03b4a9cd68a721ca95585c546f48b501480473f19360f666e20dba9f0f29b073932ced8cf9b50529ac473529cfd525adc7962d5a3b34aa3eb0af5d115aee5a8dac0caea84b553585efc447769e0c9 +Mac = 29fb2bd6920873e7e73c06e48cf21b2569e36c7da879b802ad22dd376cb5c01c9b76dec775d87de289c82555ca3a9c9c + +Count = 337 +Klen = 142 +Tlen = 48 +Key = e4e4d9924d57bb7741d86243d2818e8cd133acd74037ef5c0625a20ae605bdcbb2b5b609bc8b99718e3a5bf7dbfa6c1ab5e38b69ff9ade46263042ea0c47e0a94577017786f023ac5a604b0417179eea11692bf60d530cb4f962ada7dad16b8d05f161e592ce7eaf0e10db73701f4c844e8b368651aaa02ee7838c4937ea87005aed7f5ac86fd5021013b34bcd5c +Msg = 101c3e74ab6b30458346b7a1df2582490b7655c307845c59819dbf65017476cc64c45fc98b368eec5485e462c9e0e3769890c058c4daba1d9927ab08e562dd0865a21e817e09174f2decd9094133b982c8035e96c79b18232e7c73550acd0d27fdfda426ebaa7378f7c2bf1eaee8ad7681195604798f1d7126e541d4d97dae31 +Mac = 2aa697d6b6bc98c1295d74280b8b8aeca85b970ae9afce5a53ad846e1af75221194242cf3f000696f1ba6d50d613105e + +Count = 338 +Klen = 142 +Tlen = 48 +Key = 95308d9fdcf997893fab34e3e4e35368e956ab894c21b861085a00eb81eb9b7322a0f24a457ec7be535776492c9b7a09c97132702006e53d472505abdd09b0e8a66f7cc875ef74bb4f8b5efdcd89400cc27e225f1eac1455128d736c75b069b367c4b38234f3a7687b7175658f54ad591da601bd0fb84d91b1bad4951289ccbcaec81ede493267ad1e2e42ea39a4 +Msg = 88e1be9b171e8606c966cc153b77ab86fe26ef05e39979fd75b6e6adc6db6b7e6fd00394d2facda3a2d1af04a6944008b93be58c16ad3acdd233b37eaa2c8318ff03bc721f5fb891c699b9c1e573cce4a107f30b9ffd82437f01cab2a674f5e24162315c86b511793da82f75807e17c5bf7360aa07f31c07830a7370431c8a83 +Mac = 703898c05011fc49007a182d0e4d2adc1de189013f3080e4767a1e4c32e3e4aad2fec73ce44af52d8283981de55c1a54 + +Count = 339 +Klen = 142 +Tlen = 48 +Key = 8b78fff13bf0484ad184c56029f2546a27e309fba60fc53fb1a80a81f6f60df1773f0da583e9e4dde5e2dc8b5b40c3134a25424fafe66ad6596c907e56da5b1fab6f1b9a48af5c1a3abdbc9a230cf9a8e7364e68a92c00dbf69034613f5f037d8dd3d0d97088d98a38dd0d94689d1eb168dfd64e7a2aaed7efdd9d349bce2e948632d569e4bd83b3480a7882143c +Msg = 5af4e9eda7da0b4f6919028f7caa329003b281b3afb2b8a83efd2c8441709f13235d616f67c8bad131d68da8088235e8da92b3a540c90be0045feba1e1ae8e46892ee01aeda3e329b89551531c0183a0d24e91d35c82bb428eb607e44cc82cac954faf15c1d44cff063f97b9418fe35ff3ce63668a448f75e3ecc9760c2441ee +Mac = 5d843f0479edf1b6ab5483521cf5353706dcee0f8437b828fe80f60c44c33abef2955b612c376dfffcd67fea585c6d50 + +Count = 340 +Klen = 142 +Tlen = 48 +Key = 7711be3686e1a1d9f6c2a51c8455754c58edafde234c97556aad0d662208bc5a7c9195b502817c15e31a405c8be5d111773fad0448139c3116e99de70620202a1f77755559d38504f73cc0301728569c88fcaa70dbd00424bd7285a084ae61a207cd485fb35c256ddb2f0be050a56cb4322c8d6b050836f60751aed9c13be78bdd9bf51b37a6c41937fb0bb45de4 +Msg = 51dac8cff6c0d3b27fca03803e554836c8f10c6aee7ac38dee84c46deafc57fd980d0f593c415a05d3e9567591bee6d38ec806fcbd7f5bcc1d310e9b33a3db07b7fb65f48eddcdd2f8d5821f0bf55b2c60bfe3230c45f449d18e8781963cca12156c73a9d4de54a2565630839241cec9a49c4be8c312b48d7364d526fb0e4ba4 +Mac = c8909eccd81ac5c763cbe4c2ccb537298026781ea0f7cb7ac43c0aedf8d369bcf6f40d0ff315672e73294dcc4400e4c8 + +Count = 341 +Klen = 142 +Tlen = 48 +Key = 205f40ae5dd58fec68ad60b3a29041ad2110148001a108f3ffe4c853432cf2157e3bcabc354c30fd5d57cf21279098ac1d306f3c6e7923b386f4a498e2fe70bb23824f18610840fec1efb3714af6f8ccf402f8ab021b230792b7a9a3733beda736bf378b8811a837bffd7469b2cc4b56ce0b1894668eee374bb43f3b9deb5022e077e9dd527051f07c0a7ad2081a +Msg = fe0bcb445797a28e53597311250b23f0fa7763e72cdb86d2b9918f6ff3ef8f64796d2e846505874ec7e039b6532eba295656efcbef4ffa037b4d543951a11bdeb0daadadf5317531112405883b606566e2e4ab5de664cc5b07ebb2749ec58fe18b9c70496ee115401a6e000e4669ccb1866bc0257ae1a4e245b3d3a741249276 +Mac = e85d23f403ce6224efc217efc09d90f56a0fad52dc7471499199a126872d07834603ba26512116ecee901083e0ec7cd4 + +Count = 342 +Klen = 142 +Tlen = 48 +Key = 75e3ac050d30c6f8b3fc66496e03eb2cb0bb826a2fda9a05f018981fa436cc18383fa4f7a80e200b141086d2154b5719519f81654d4cd69283b5bdbab5642858804dc6ad34577963e3180a71b8e01c3e8afa5e09b12e0588198a7acf95634f74759678f15a13b849499d59efffcb20e38453801e03870e30d9203528ec3b2bb43ea12389c24bc5056e26db139113 +Msg = 404d7a28f4bbd3753c928114aaad41d7919fb0fc0fa36bb94bd27518fc99d9052b6990a539b0a4ea2309966505affe5bdd38711a9280a78d35e3dd0f86af797dbad8ed8f7beedd68314d846b809454511158dc789619ef7e0874030f339bd7fb7503598cc35cc616ecc613cf22428ce1b666bbbe23568bb44eefadc10c453ba8 +Mac = 3c226c574944ed5caa2d511740d995ca468185c426f47547c2456f2e262808fe55b0a0da08a720dee83bd7dc6e898924 + +Count = 343 +Klen = 142 +Tlen = 48 +Key = 004e324f0a500b652622671dd7c984d1dc9ab39db1adfe70598f0d635b374b4a0b3b44890a44512a10c0782ce9d68e1dbe9f9eeb96938ff71c41006ba34477ce6772bbd516567e7c8fe13f56e95c6f21b7a1d39e8a8b29a0b8ab0e625c3c1f1d9e595fda356ed9852aed8644de4270074e08185f967d1593b433fff18f098b62385af7416f74a96d694c139dd070 +Msg = f4572bea6966ef05235dddff26bec1853eb36840434604a79cd4d11702bff9258664b633d64db641bca7c306e7f6a33fee073d489226fee944927b72e72e580ad679684429c015f3349303405175f0f9e0d7df2c8b4875f5cfe6a394b71885c2eb7f8a46ea29d6c39408e4d4eba3705a1a0c9415b712317245b790a4fde549f6 +Mac = 5c6c83482e60d6d787074d18ef5b1fdd05cc4844235e7b8d6f705bb07c9cb0d32c1b66491fd638fbc41956041bba7088 + +Count = 344 +Klen = 142 +Tlen = 48 +Key = 61956d7ac4068b0f7eac617bb1ee43127067f9d1d1a26d454422a7a923a6fb4f8aab81416831c627d6c2c16ba8b1099c42a04510ae44e3ceeb6d0daa8740d8b270c7bfc907ad51927642269043c5178b26e3ae35187bdc0dada4ea84a3f1b25ebbf40f5cc700921805337730abb4d7a6c33a1f8739cec0cb33d1287da040f21c14375940d3b4f3802c9e9c940806 +Msg = 97648538cb39ec8887444d24c0b7e0eb278a88c7501514e014debe1034b0f8983eed6911b52432a56ce6757e33d6187fb500c632a16c370208f2b2ab074fd0eea5798289fe305566a2d6f5133880f072674dbdb2f6f7fd7d31a700738f0e8bd893b1d989f084df35f0bbd5c916ddf12c031a762d96deedba57a6b2521613b3bc +Mac = 9b2cf9090a25b8528c159e96290fbf41e077bc42cae131b89e4a212d20f8e0680e255c3906d09cdd60f3de1fcb68c1d6 + +Count = 345 +Klen = 142 +Tlen = 56 +Key = c937c7387738e5be8761a41603a204cd93128fdaa18698d3bc62c1613aafc0f2226e62ad492ccfabbad711645bd0d067ce415f4f96b1fdf27bd654db2faa46fb31c1e99bf2d9d09537b38dc4be2173b92461a1af06a93cc16703fb5b515be9efbfd666e9bb666fe4c49c201e72bd77295d175be43a95ddaa4792bdc9eaeb30369458e07fecfc35002a3ad35ac0cb +Msg = 92cf3716e22f68d30211401034fc3839c94f473695e0f836a0e4bfab1e0f8d95a2fca2048ecea3d8ce18ecccc6fa27b3888d1d014b81cd8c1905bb94c7e78b012afdceed88c31c624d456365ff407e3374840aca439c75ab78b157df8cac0638949b65d9b856fcf8e7624ee3c9156641f5fbb49b6579171b26b03b9354a425c0 +Mac = 490450772d57cde7f86f9d685d070c23794cedc113143c441dbf5b4d787fe6e619b6e6a286a3913e1d713f4b28af2477cf3453c41529c2ec + +Count = 346 +Klen = 142 +Tlen = 56 +Key = 49a75faf8232544d78234c3f4fd9bd7b35996217f5d579b2c9ae2f1070b7590481fc6493ff438f562d915720a4f033e1a27082caa56cc2b2390e02b90e159a2b4dd619a72c817f80c1a6ad6313f8193a7750c6511af574b7da1a14e85aa87ea8553e663232768c92d96b3450c678d64e5b4216f37bf8f68954d94be47cf76e45403b337e39aa1f5620e6d52ee2f8 +Msg = e4437faeaa8e071f7fd71b5d9b42db5643d0d7ad9ee17f5fc5f8dca619bf7e1dd94bb625f4a005881b78d35d1b40642c6a640952ffcc93a667a70d5c1667ab2afb0cfdaa57a66800ce15d7bcbf14ae02d17600e8ceae011fb595bed60a680bdb7110bd037ba71acdc0378e422ec5a01fa08e2336b290b112d44c55da9ecb8877 +Mac = a093df05d8df35bb12de09c9aedb23dcfcd517df6f0cdd1886d4c736c85068f9f19486051d223df48509a2a6e1b50ce22429efb8f0797823 + +Count = 347 +Klen = 142 +Tlen = 56 +Key = ab3ec2eef335aef9a9d3d0da7082ffdcf77e93ca737e77af4d9680e0175cfd3cc54a90b31a633c056019becc5c6f21bd815b8d2b646e60cc70b67fc0dbe4efcfd8aa9ff30f6788164a06f81c71232b24b8701c0b17589a32fbe29e823bd7dcad4d2798b6ba89bbb3cf6226d295e8469a0487e9737484506954e0852d1e7fef5c8a8923040311fd6557f4f0f4b204 +Msg = 81159166393b6f178964edf61b612215cb6af701001d24e93dc45b03f3d7c22c9ac2a7cfffe77007e0e7d008b61d41bbd26caea8ab3b6f1977bd7b7cf876d90a99fb58a6b9f980084778c81a8f610aa2533e33221e423ffcd58965da8fa08e4da6480cb50f778960e6a03df64d3465147769f037003a7bdc80af7fe55f5ec93f +Mac = 866fd902b3bca0ae39abf8712fc35ce9bc0ae280b6bff7078b5d17711d7662eb547fb5326a9f739a5e24ab125386392ca74d24d10335acbf + +Count = 348 +Klen = 142 +Tlen = 56 +Key = e5ce84beecfd6fdf2ba0a229dd18d214eeafec6460729fa1ed3f1ac8ee1e17407bd4180fd4b6f04effbc86dab3d6d64d7583382d019fe563eb7cb7ee863530d8053fbe69e0413d9c7a26becf007087be94cf5bb2abf2fbf6b39dec8bfafc7b1ccb37ff34da465eafe107d26f8c8ded5093bbdb5d2512e8448dc84107101afff514e361d9886c59717f864b211ed6 +Msg = db6e03879e21326121aaa331892a3d5199e7825077fc6f43b34fa35b85c4c4bd56b01f8d82918e4c5dfc9f6574d6f20215c7e32411ec69f3c0cc3e53468e41b71569183ab35b19ecbe1e6b692d5868b1d81246333b6bf72b768d4d2e99e162031f7f37b5b8e99be64cf84f663c166705ebaef3a57de1df93de7b18170625f049 +Mac = 478afd001acd85badaacf824427098bd5c574340e837bab8c8e608b0654cd2de85e3e697252803cbeccb8770b1fe3b5ac1915b1b9b93864b + +Count = 349 +Klen = 142 +Tlen = 56 +Key = 79e902e852b2e7be8347f379fa29b636ef0439acd1d792698056b65ebc8d8f9edec54e63c5ab035214af6a009bab08b412c5776f0d96ff292c8c665e928c08c999dc2a70c4418be0f6643cbae17ab26ec0241a474994eca8ddf2c39503fe6c7414f63c1538baa7f1902e0fafb5e0daed62ebc73c6d1b826cfc51760bf529e228b6db2f5c075f810c4cd58ce80023 +Msg = 7d1cb6b5c810a2dccdc7651cb460f4a5b9b315347586c4e65f05d54e926cdcc5d1074a01c85cd8ea94a729a88686aa0124f6bee2717e183b6faa6710e1bb39ce559d19db6219fb702f4cdbab3458a0e045594631cc9b3c5e560a0bde51e9392e13c76d691fafd319a4a0c24c473c9deb22c4f7480d44faf61c0b09dd695ea48d +Mac = d1004dc9d78d4559d2592cc1e8d960fead0f94ecb45e8f538883d930f227ba26e865fd366ac706823729977cdc50eaf03bdb1727d2818cf9 + +Count = 350 +Klen = 142 +Tlen = 56 +Key = 78d9947c69e6154472e40ccdcb41fc21a18329030195a0ddf85e77faf99856f57ee03772f209690bcfb6db8e0428976599548d559539926c2070a834e505802dba853d7a83587bdb535190dbd584114beb5899ee94ddc576135f83af4e3b8dfb74f130fee27b529a48ddb31e07fe73badeb6d537c62842e41a5291d4fbe28546f34b9765d819f632f481cdbe623d +Msg = 5c128db8116c5615164550d509171ee4b4d1014d847beeff3d1ce4d2eddc7cc51f66c28950904344a73e678fe08301c08a0a256f72b53a335f834fadffb7b3c82237bf3e2632f75fb205520ea860d50c54a46679ea90e0972f1d63d276a6eefdce4c2fdf7a9999eea164b85a47f4c14d7c686e72d35508b416b2c54838f155ed +Mac = 6ade4411b042e26847ffba81f9d77f1d6d452ae12aec7eb2926a6db35e1a339f2ad3c628a7ad61c7cffd301dd18403703059e6e218508f7e + +Count = 351 +Klen = 142 +Tlen = 56 +Key = b6ee6f1a804c6552d1b06ed4b3117b5e3f2f19da056cf4d6aedd9a34e0a1822362714d4e81794b53b266417678c16a97887bbb612cc96bc5e532b3a654e5d3d65a5155427ff09569906381138cc49e3fc2384c5d33c34abd3d617c487b52ec6ee7b5105f41584b7eb5cfb512b8c31f3f338d5236e30398a8ff927e801c8ed7d14fc5040d915a737967d166ddc266 +Msg = 1fa2f26ced0d74dcf81a0640c50a708990f8f939e31792c7673c5245fb9c224003d6bae80234cc706c2d7eb8b52f1e2aae9c11e211130d115af089a3d916711f06ec1dcf14a58422c9c5ad4e8ce06739c0a53a9a501c9d5b8b2c694333608ed1d0eb056b4ae906b8b7e77a4a72a6b3806d1c5baac8bcaa6fa2f7dc6c2f03e31e +Mac = e145c5715b9442347f09405640f2af5bec8d8699f458d4c69a0f823fe9e2a6676759359c8a73ccbc34253f38c81c7ebacdd433ee1913d19c + +Count = 352 +Klen = 142 +Tlen = 56 +Key = 63c866198ef4216d41106fda34c4ebdd040a39de8731f3585d28e639c7f97f8cbc9480553acef7bcdba9716ea8d66b4131780917de2b0b048045fcb32b5cac054808e1fce6e94ad851ecb47fe6cb802225d3551e08ea122093d0078dada564212eacf1d6394e0007cc62a1d595ab14ca08a284bcae76f2f4c0526f90f4de8e26970819aadc04039274919e375e7f +Msg = afc68ef8a54dfdea5bceceb387f88b0c0ee86c981ced13c4738e79f303ce29d8bbaeac22a0f4445f1c2bdd1a98eb40474d5a8ae256f3dcd20a8655138a803d14966d835ea5bb6a7734c17f065e00ce37ada85561305eb9e7cd3c385cd919dfeae60bfdf4dc2bd7fa4c989dbd00bf9da4d7d9b75fd0b411ca64b70c1419217620 +Mac = 2c547e05592dc04ea530c9ae8949f3f9aa6f9563e69c1de166591e24a6bb4e6b1414a079734ff28597cab217161e147fb51a1434e9fd21e3 + +Count = 353 +Klen = 142 +Tlen = 56 +Key = 7f432d3c5b0b0276bdf36541c2f180ee0684ec7e174fca642a070f8c0d901f9b5d639e79f933820db6d06d47554b3b64b25bd66d3dff5201ae653655f50b177970246cdd613d9d139f205dd68cf93a4c46b7728822b50953569a182cf57e688d214e3f707c717a12dfabdcf74f42a62e2c6068d6acb916e1886d5e18f530395fd6a8c13b30164291de3993b18670 +Msg = 15ef510c252e80f44e537b0f1fbbf3d57dc69ac349e8e6083dfd128217dd67e8fa31b949118534b5759e593a510d431244042f1a06693b864f296ed3f4cff9fe5355bcf4f2390c4963d4b42c6be8399b637863d3dddcf80b8b14cb615d5df515ea0263f511759118e09e94cfb4735ed9a2c93ed61669a6feba6731139aafe494 +Mac = 74787330ed257b3c1f545207d42470732c4415ff9f19b243128c9cd9724ebbc15cdd14b1d8d5b12a709e5709691c334207e940b6701661ae + +Count = 354 +Klen = 142 +Tlen = 56 +Key = ce7509e8e7c29911223037bdce5c5d8cda10fcc050ba1b4e201cc1341f44160e4fbfc5e4610aa4477849979c303bb2b7df6e9dac1baf3de17cc59068a25fd98c7a4afeaabee72e43bbddc64e570b76d352c1a0b5cc2f00d0081d92436fddb00fd87e7be206437d2d72538d7c4bb2f207bc70cb846d21ae404c8d8f6e8da8e3bfefc406334205da2e2615b2ce151a +Msg = f6152e7422034d9c5c8192d1ec85a965eb978bb555903d095fa2babb0a982e9cf85f64937ec68287fc82f47f6975a608323076d845b6e9b068821c87d0ccfee4ef09bd8c8db17e5d1a44517a438f64a8c32c77f87c488fa7c6a8ef4207ee440d841920a6764ca9e661d09308a15b4b0d4593755e21ce99b41f1c1935d68767e0 +Mac = 4a8dfd230cd6f466a29c8f0737f5c8253f06694a43a6f1bd78cdee2fdc397eb68f70e242992d68f23904cfdcbf4080b4fb91da0cd58f7384 + +Count = 355 +Klen = 142 +Tlen = 56 +Key = c73132626516889283f28fef56fa340450a6a592396d0a7b81cf70ded5990584f0658b7bb46007007950b9a3a5d551a57cee60a53ac00d7b5f9309654b1ec5610a04e2d9719ee9856afb3c8e8c254cefefa60d213e4ba7f70d286fc76ddc15cabe171ec5c55995e9fffcfef834748caa4ed6944f6c9740b53396884c645d5e88b4a42987d81775f4df5ae92bc449 +Msg = b1e626fd2455c59e04b0ff4e1d2894d9dff62765aa92a2474926d71bbc4263133ad1d88f764c1bee222d0aa4b1a7628d6294e0827aafa729d003e2118fa3aafe389c2a81e62801ccd624e7c526c49459dd86de132c6421edf44ee36687d7b8d4b32f64fcfd5140e02a7ddfd804e9f0e45ab46641491bd73abaef22412c46553e +Mac = 2b5ec29766abddac4939a3610ebf2a043873cd15bc121d8ae6dea60af0fd03b348f835b32988998630590994217d053cee8fcc4017efed80 + +Count = 356 +Klen = 142 +Tlen = 56 +Key = e0ff5e7b2612bbe69ebeb72d5826ff1b820f4e4adb8a86e96bd4ffbd727a1f669ec02be480445c5941df361091cc15bfe10c0909d208e347ed7990889485a6d6382a3dbccde000057b7a84c5974ed89ed1955d3caf15d7223afdc5a9f710ee4518053d0bf42ece70b559495450f46f3fbb74f2ea5af78a01ba27452781621f3ba519d2d9dd76ef2455422ec3a605 +Msg = c213d3695012190b4ea9dd66912db20d687b897d758328b9bb08d831f7a15ee834042dd69a83da8c87d7d016e11d4525aa1e6d6ed4d3ed4d572992ae8201432d8e7b347c79745d05124d2bd150ee75a9e70bb17b1da668ffdad6e799ffc63882f900502396ec8ac11793545f86a928e04acbbf6df80581166c973fbc19f9242e +Mac = 1252ceb41afebe8dd9ca1d4a01d1c07b6e39a0462c497eee7a778757aea39d0e5f0a1239f452663ada69d55cf2ba14836b40e2457933e37c + +Count = 357 +Klen = 142 +Tlen = 56 +Key = 59b5247df0ce81b59d0b40546ed185ff440be012d91d753702195a3832364011407e564a6ac66a8399e35151e71b8a485eda1e5902a6ca5f125560f48c7e6b89ef2d12b644db3fce5f9d00b7639b2df884c44b1411c0b017b126e86eedf058fbee2c216988f447bd789f132eea39b5373f312eea0c526d8766f4b84d5d744e90c6e14b0c3ef8cb796b53526085dd +Msg = 7dd26a4d522342a5e9c081e18925c6f2ef6adb5141674240481b1052d94fff2d9476be8fd2d88b8fd8ef042651113aedfb500828a09fa3044836711dad371f43ef91ee7e89244d4f8427ad39eac791807e11e431aa129062b93d4cbb460db536f4eba1226051b06e543024243e8ff234e0751873480a32e303f948358e18eb8c +Mac = 0c9eeaa855d460d0cfc0babe4c57110f0737b79e80fe76422832e47657afaf00944a061bf31c897e0a96abee0614eb755e37f1a7a2699f5d + +Count = 358 +Klen = 142 +Tlen = 56 +Key = 57c2eb677b5093b9e829ea4babb50bde55d0ad59fec34a618973802b2ad9b78e26b2045dda784df3ff90ae0f2cc51ce39cf54867320ac6f3ba2c6f0d72360480c96614ae66581f266c35fb79fd28774afd113fa5187eff9206d7cbe90dd8bf67c844e20228d8507ab87e993125c4643cfd8c58bab7053c64f4da5c6604a92f6eacb6380226e12a166ad54fdeac83 +Msg = ec99b8d92c7b68072a2e8b2d4c4eda6d3cab78b63e4ddde9c1b5123a336624da1aa4d3d3617c8a33ef04946c7fe48cfbab15154849e9cccdfb4c7b7b0249905953d0cd6fedb640e269fd7660d356ecbeb8e4c6e08043c3dafec97154460b9d33bfa30e767931735dc0a099d1f1abe1008c9ff2488b62ab56f2b45b8fa8b535ae +Mac = fbc3d7351550d40e77bac577fd9c180f2c9487d301a5d0e44f4b8dd207980c24973964ec21920ceac324fad4c88ca235d00e86ff9264d2d5 + +Count = 359 +Klen = 142 +Tlen = 56 +Key = 3fd3dd9d3a7c5cf7e2a1d60f489f84471902179f21f656ce0fff089278ea14441e04e7af71891622565f44c428044728fcc686212a32a5d809ce651bf90bc5f8a7756e8b8c2d4d14b799824ccd5a79fa4e7e56c119f7973c334cf44dc48f8ab1628f39d8924e4bf48cb656513f8763e495944f26f82f722315e27fcde060ab97d8ba123f8cd656eb5e1e89788775 +Msg = 05b2305a6264fb92280197a579b4d336395d5b51148adbfec2a3671589641b530490feae24e42ce6744a355da150c02839d87466b31118d0b0a6f89280358b5ae80254ae22ed068226a1eb0a280f86cd621b78fb1394a000c86a8659da1bfaa6386ff8016665cf8fc66d825417d76f4c3b8c2eb73dfcbcb49257d9119f00ae62 +Mac = 9b4f475853a268a72f31364df38438d3fdad705c9c50c8dab3d64e6c193dc63c6bbf399035641cd222c05aead20ba55c0df360483eadd7a6 + +Count = 360 +Klen = 142 +Tlen = 64 +Key = 01b95a887927ce31b1242391bbd00965eb77a903d4b8399b72e6cebda9ae721beefa779145160b626b110cc554671da0d8dcf993a9ab073888e02fa9b803ed43b3f6a3aa1d20340df6ccceac13cb0797cf612cb8fe5fd513228cbd4de249d16bb77587dde98f71bbba1a124ee046f0d239ccea7abb1accb5aab021b00dca491c623fcb3191a9ecf31fc680b4a41e +Msg = 632afa8e79b14b2a3604f5855d2bf182d3c56d6853f21fe46271da5286065f38b31f751306b63c57b679beb14729c78f0040f7e2a0d615224dc5a693cd0cbec8f87117656d6b6029853ed72b85681a63183c3a6dfccd128afb0dd7e81d36f0231c69070b189560a88c9b697b81b0930701026190cf9ebe23559194d6de4d9a51 +Mac = 210ad45ca2fd1f105c0a18f993774f933ece57ace4da619689e1cb8b491a189cc6e4ee1954a32201072e70f934837c0fb6e239b4fdfbd26ebf11b9a919eafd09 + +Count = 361 +Klen = 142 +Tlen = 64 +Key = 61096f4fe5340488916de293be38cc3ae0c877670c713637b760d74fc18ac773b2e27d5543cf16aa20dd3d83ecb34edb8545bb6c8a4aaec81bf1f0a4e0cf09774d1ca944242046b33be807677f3de18c39d700af90cd68d34f50dcc1e999fe9fbb20b9c4900fdccb6af607e680c0cb7583e60dd825e2ab81dce7634de3cff0148355757f90841f19366f06a9f623 +Msg = 67e704046f98cb5aa97da95b19147391f05788f811366b0ece44b12af2b11e0e05780bbfcbd90a950e0acd8e9d2a44e7957606eedfbff212fa1c163cfbdcd062d2be3259ce65abea6406e4292c64e9022cfe89155986ffc45b96d289919ff98d552243778122f68231d9b6d3cbaaa9093d57d9158674da4c781bacbabce2e2ba +Mac = 9a2d147e50827157f3866e868c1cca9f081579c92f25da8cebc9ed249928c82bead39d480ecbb5b5d0e0755029aebf3e0206984f3ea83f4d6372f4453390e070 + +Count = 362 +Klen = 142 +Tlen = 64 +Key = c5c06993d43f27e86bff96ca7511176974bb63e618bfc4b610e0854820a3a6e77453d5e134479ae95868d2babeed5efd79691c6d6d0816391915faa9b3c0cb057a1fd5b34872e69f66abbbe0a52eb998aad5de1b8a37f654972a12657986368e802c5250384773d23ed23b83535b8f01af068f3a97d4cbd13225b3c3997c504a2d8332012d4faa4988e439eceffc +Msg = b53127b89772ea1ca6dd27277da80ed972e82f1232a73d4ba537118418c5f17d9a311329a61e5d6003456fd4e90ee3466561d3fafeb99c68997be2349a87d5604c0cb2c183a08caf80904c011474f73909072ffbbd36fdc41077cdd8805cba7c93680c667621ff72e366c7964703d01825834afeb546e5c7d2d3d958136e2a39 +Mac = e3a4d32f262c6cb0e99195c7439ad2731185c58811f40ecd32af214a21c20869aef5297cd951fec2a145e15f982266c46f7a60c9fb0bd0c6b16f5ee40fb44708 + +Count = 363 +Klen = 142 +Tlen = 64 +Key = 5860501208a4c922ad7550dbd931a19ac1434750e63d5f34f528a0b5eb1798b37c0338eeb6d293bfe2b9e306abc4cd6382b3e6a94008758f0d5e7ba981fcf0970aaa507d8ec456b3518c07bd18c4f37d8f7db8a7e82ac776c5f86b9d58620781c8ff9fa5d79f9965c397c5e869599c50b048c53325cade4fe39e7879b67063d780aa2d4fdb8ee53fff82246fe7aa +Msg = c35b26bd02499cdb6b06bfa4b18979f0a472ba7c559dbd277bf78c611590c6e051f2a094adb22ade5c44d4fdeb1330c924d1f9a3330c55ac07035735fbb7c877b64527844f72ee7eb58817074f61dff8dfc1ca56ace9e782e06855af2f350699b9fbc37532b47023407992ab24980ee79de8337d0959fb11cecf8eb8f83108af +Mac = 8c385547a8eba518e777c3593c5b7ce0bd7c859af6d67b6238d20a58b8d0d74d80d18ab358ef1c1218b928a026ae8c4e3b73bb5bc0914de905d499c75e6f3d9f + +Count = 364 +Klen = 142 +Tlen = 64 +Key = fe4c83e8496a69b7a251228396a5d2b4849edcee0ab1f8dabd6d872a1da324d7c8c97cadeda05f0a041517e3bc65f807358538a870c1011704a3c5cf1216d2b57acb269e4fdc841289b0c750fa1e779184d59a9188fbcc4ca11492059326ec8d7e1a29c25866ff5699e9dbd2381676dad755a9b23ba68201fe8897d588199ae83b7e2e22ee85f95e9d89fb715e97 +Msg = c24fab7f7998c69063c2d1103e60a6c4cb03206add01d09faf75f1007a879e9047ee435a02b35257d1373791a4778d890c8f92d6507dd810be283eec3fa11fa82ea8c9aa6a723164aaa9e57a11b54127033ae6dd36e1682b0c5c47e420a4217e1e8525b8d95dcb7f9721c213afa02a66570c04c5b7b6e7b94219f430451a0cd8 +Mac = d725750a042de65607af5ef523e3c86d08be52427b7036ad514b9596c901e96d76b5e58f68907044282e695b3b875c09ad49ecd9950fe312a59dad691471c572 + +Count = 365 +Klen = 142 +Tlen = 64 +Key = 41f4749cded6e44c11b8118c38cd71cb95a26f9eff01bbbdd716e44e3ed02867858a8bcee5eb2603710ac28048d6a53f0fb6ac7d9f6c9abefa3fb01184597e95706ef83c789ecccfd19df3325e1186ea243bd4dcfedab157914c115583f7d5fee8e7e46efdb87eb819b7cd2be044bdd4ba7b0e438413a89285852ea4a371d5abd63e77edde02e3c731a178f23838 +Msg = 5c74212dfc2a80d30c39d680327d2488838c35d6503c1a8c4366d7eaabe95c7115f1b7481c7987de820eb4d17fd65d0f58d2123b346044522c04f98ea167c48ad2a0f5a8adb30db0e65775b947fd6f4d470d4cc8dd73e001965a332ce63779ffbb0a441458e1f98f619d800032f8408b75c74b46f47dd5e2abf1eb8e22616218 +Mac = 7e983cd601ff5837e7d170f3092e914e076c21b31761eb7b9ec211e3506758d8d1395ea914c0350afdd6827c0283ea4af188cf30c1fdf075e41363fbdbb29eed + +Count = 366 +Klen = 142 +Tlen = 64 +Key = fe27bbc87755aacc37f667f8ca37f8888fc9dc530fe4f8f38e8cd426e01307747edff012d96da707ee96338d1b11feba313a865fca115431dd8632268ff499224ceb69d31732dcd91e0cbd2b92bbd5b6b543a74735705daab81a0114b8a8f0be91d38cd3d8ad328cefe16c99d63c67c4446ca7d1f708f9a848d1a9b60238f6907420c3d9c5e48f67889ca7a1909c +Msg = 99841c3e4a41b53c30267dc056e7e9b8f9994494dfbba363ea761c38ec2433d3bd10957d8b7c093472e9a3084c923ac5cb3a1dd2c5270259ce6f3fa80c723dd847a829ac409decbb44395ed20045b694972b4663f2fd658458b9ac7d3ecc65c260d4409110aa481bcea016e41a07446c86f5250f0f45b32aaddec97f293993db +Mac = 562b5ef3d5cec882a2f54f8169612dba2b033325ce5ed924024e7806c745de9e7612dbcfcbb95ea3fdb93de9c6460a866bd412b45eaba5139939fe43d20f9315 + +Count = 367 +Klen = 142 +Tlen = 64 +Key = 29f8eb9fc8ab58fef681f9faaf934e992d42046f0ccd2fc9ab23d42bd5f5aafda110218196eaa408137a1b66ee4db5a35cd7e4f31107a9e8a81e11e744c000d9784b2d2264696ed721e1362b60b35b2b4d631dacba95658179da4af109cad9687653166c7a503ed3e85d4f334aeaca9bc98fb8804e9febfae70086316c3ac01162cde4461fc89c642f977065f71d +Msg = 3ac2ffbc5b6b2334809232c0f8151ed379a8634d70d3f5a1963a7637c421ad0f082f34a8f872702046a4c69c95ad0cea8b683e6528aa731956810f28c1b9396de8a5905e751c1937c9c17c55dc8771df447575ac93a7c161e6967cdabb9930cc03ab7ba8796e07c23170bbb274ad33facb566eea5ad1c7c16f0127155bc77875 +Mac = 38ca18d60f180fd2a40e342272190d9b84ba37bbccf59b29bcbdb08762a90e1f8b28349ca634a6f955cc08c96835ee70a2267444fde88b45b8e313b0daf6e12f + +Count = 368 +Klen = 142 +Tlen = 64 +Key = 345479ae901adbac7223f5f9edc419bb64665cba4e3684b7371e28ff07f3124087f0e89a21630cf9e8a6c0a3d8518e0d5eaee7f31b6d0aa7e59927aa0ecbc479e99e61a98b625736cf1506199d8f2f186bfc9fe2038f0e5b87754635b30888c063462b035581860b2f571083c4e5c6859338cdb09004597b2899cdc87f1224bdfcd08fcf07275f1f1156260ad5bd +Msg = e4b38e556aa285688979a55eeacd7d953f1ee0ab8109444c7cc068488eb83ae9aca1f783a59b944caba75d6e0f5bdc5b4cdbfc6147046e7ed5ea4c757e85fc2181a7580a17310b36fc873e422c4175b1ea24b3830750e50961ba7df9aadd5ebe6badf81148cdb4cd850192ffc9e6103d22e14f3a4a557197291945fb9a292665 +Mac = 24d2dd3d082e6556dbe27381640837a23e5d4a4d6822066cd09217a677068e5b8901c1eca7da77a9595be271abfa76f9d40656cfbae050ff6d8ddedb0f4c82ed + +Count = 369 +Klen = 142 +Tlen = 64 +Key = 2aa1d94ec83ce7c3c75c6bc847759b085234fd44b407d8f80ddfe93c243556e87e4be8fb30b4743ef1169a24732fb2f5f416042b10c3371dd9d20dda29844d58370700ce69f7df5e69240df77b96027a0ecec71b904f690b875da854de05ef047c5d898d1c0d116c580e2a0906b271dec8e5b0dcdfb2550a40092270eabf253376d6eb01f0fff1afe55d5b21bd8c +Msg = acf624e86580af11d0d23c19df6969fe2ec2cdc737bfd00bc54dc0b2ab4421ffb58f44cfdf8c1b1bc5b54bc45b818390de850c6f0adfa2048ed48360bdb8c511860eec5ba6f1bcc51cb34cd8ddc35c23cad4e882df3bfea0ad99ccbb0abbfda707be461622773b16bd1268dbcff89dbfdaf789871d9d8ae80ae4c44afa1571cb +Mac = b6e82d35182ec417bb33d9230a55690f8720d32191cb5cd46bfd591421911727a0f8ff64ba6e16f25aa10669a85bf2ba74d84a754ed947335b7a17af0297accc + +Count = 370 +Klen = 142 +Tlen = 64 +Key = cea946542b91ca50e2afecba73cf546ce1383d82668ecb6265f79ffaa07daa49abb43e21a19c6b2b15c8882b4bc01085a8a5b00168139dcb8f4b2bbe22929ce196d43532898d98a3b0ea4d63112ba25e724bb50711e3cf55954cf30b4503b73d785253104c2df8c19b5b63e92bd6b1ff2573751ec9c508085f3f206c719aa4643776bf425344348cbf63f1450389 +Msg = f3ac4422cc724378100d7515ddfbf3fe340002b7976c43acd69c2acf26c3b18173eb4eb6f73622540c6a73dd3eac5c4ea58cc34772428c6bc7370c0accc8c1feff4640d2cb416e2a5d06f35eb366ec69f5b9e0020923f6086216652318182ba93ec702be701a90c0abe9dee261b00b16cd9042318596e9494e401b62333d594a +Mac = d336f2002c558eb518c773608387bd500704156043b76104eca2309afa67d69ad9b00e6b83417e088d3f93435922d4e8242e9631f962cd9fc258f3505305d636 + +Count = 371 +Klen = 142 +Tlen = 64 +Key = ef71b7b3ca0f904dc50447ae548096b2b3603b312a5e59d490851b270ee99aef259401bdf2c3efc3b1531ce78176401666aa30db94ec4a30eb281494bef5205dd87f3350c1c4a56f3d040b12167214391b30b121697a7915e9224b871a3c355f111a9493be7b7df870ff5c589bdedbc4dada062b3072ac2c93590829ab26a09dd74d6eaf714e3e07532c57e09921 +Msg = 50ec304fa342839457d7eb28791b671ba5c425f711c3a351cc76149d481f0547179540fff239f054ff2c078454bfdd92b72b199aa783d562a1e6fd319cf9f8e4d6948b3ed2bcfa80a1d270396209a060051eada0544347f3335c1872266d5e6c1553d9b54cb3e740c631eef0abe2faac1703a7b21deb422d0c3e2b09f0647d06 +Mac = 39d94c4e1c8456bed8637e592e4231854df3a6ffce98463e4a85c477d9fd34d27035cdfccfcfd385d91e4e38e8c75d9ff941de80742e985baa9c94dbec5a6837 + +Count = 372 +Klen = 142 +Tlen = 64 +Key = e5606f31ca4d0f5d62730f443f6db0edd8224f1881eaf27f9af3215d06e2f72ddfbd78b467082541422ece34e323a8bd45489fe6db8fedd4c9dfec4954ba286e971db9d078a7d0a8dbfe8f5f166f1e51a4d4fbd21dbb916e65c40d75244b6db87747d98de672371995abfacebe983a325e8f0ae22fb706d7d76a2be95fdeec91e60581f397b1831cd8fcb688c4e7 +Msg = 082e7b4604dbd3608df7932475e4279bb288688ef998cceb8e16d9695a18e06f3ecce733a7b9e71f62473878b2824941a01b945d93afd1f5204c6a19233230aa0fd64c77822d78a61d266f569279a182fe9f2c287a2108abec16817724e7ebe32456915bbebfeebe659d20053d4f9926741d1837d576d7d79a7b06ca82c279e3 +Mac = d675982ccc457324e24a8ac6db3710b38e5f18c5057730cb7ea2a37b4ba44c41dde0874e43836cc95e97ff0b3ac10410497f9664177b0e576be8c508ab1c7857 + +Count = 373 +Klen = 142 +Tlen = 64 +Key = 8a0349d4d1ed8c4af533e9e83468b5859bb68237798038171346684499c9dc2b5970730533eb2ca04d1680630820f58d32ecf0bd7db7cab72ffc27651c94831cd1220e2113aeba6c889092abb3904d8a264b2332f2d9df0f63ac36d7eabb57c85be0c331587f5f330d69c7c91f00e606de9bc49ec22c9ea815203ca2ed867fb65d743a3beca6427f4669c9c432b7 +Msg = 035f55033df01f670015a828eff154a245e8ca7474b0b3330cabbe5fdd74e89560b8fa075347532aa46ae7ae907888b30ca4653a6419d0d9224944b43181a6a842c1cbc96fcc3b0f1e7b344c2956f2613c652eb27e44e5d773765a9521fb5e0c7125cf31d9a75f7f38ef96ea01b61b159cd52fc4095a7a94c7db0aeaf40a9929 +Mac = 3780ef695742f09a160c8dd7d35e2758b08284e8150934d222db31df2767d40d7c815c526ecee5f787030c8dc5f050c419ec6ea7563650dcce1480892d3088e6 + +Count = 374 +Klen = 142 +Tlen = 64 +Key = f78343071f61ee7d9f791bd53132e6d557928bcfe4b214bebf6f3592e46374c7ab148c3c4d6a1443a4675cf4321298c865b440631947b6b05f2c2a337d1cbb9b3661de974b4604eb41cc77c3659e85470e47e16f22a34619db935d59cbf5e1101ed401c020db069eff1035e9d1bff77bd8b3379e05ac0c20bc0e98aad7d7304dedd3bc5ed4136184649b5e0f7e5b +Msg = d63b50b54e1536e35d5f3c6e29f1e49a78ca43fa22b31232c71f0300bd56517e4cd29ba11ee9f206f1ad31ee8f118c87004d6c6dfe837b70a9a2fa987c8b5b6680720c5dbf8791c1fcd6d59fa16cc20df9bc0fb39f41598a376476e45b9f06add8e34af01b373a9ce6a3d189484cacb6cbe0d3d5ef34d709d72c1dee43dc79da +Mac = 086f674d778db491e73b6fbc5126233c6b6e1f066963356d49ea386d9c0868ad25bf6edad0371cde87cea94a18c6dba47535dfce2e40d2246ab17980495d656c diff --git a/test/vectors/pbkdf2_sha256_vectors.c b/test/vectors/pbkdf2_sha256_vectors.c index 3f67d1cbb..a36976c14 100644 --- a/test/vectors/pbkdf2_sha256_vectors.c +++ b/test/vectors/pbkdf2_sha256_vectors.c @@ -120,4 +120,3 @@ const pbkdf2_sha256_fixed_size_test_vector pbkdf2_sha256_fixed_size_test_vectors }; const size_t pbkdf2_sha256_fixed_size_test_vectors_count = sizeof(pbkdf2_sha256_fixed_size_test_vectors) / sizeof(pbkdf2_sha256_fixed_size_test_vector); - diff --git a/test/vectors/rsa_vectors/RSA1024-15_186-2.rsp b/test/vectors/rsa_vectors/RSA1024-15_186-2.rsp new file mode 100644 index 000000000..87fccc385 --- /dev/null +++ b/test/vectors/rsa_vectors/RSA1024-15_186-2.rsp @@ -0,0 +1,129 @@ +# CAVS 11.4 +# "SigGen PKCS#1 Ver 1.5" information +# Mod sizes selected: 1024 +# SHA Algorithm selected: SHA256 SHA384 SHA512 + +[mod = 1024] + +n = c8a2069182394a2ab7c3f4190c15589c56a2d4bc42dca675b34cc950e24663048441e8aa593b2bc59e198b8c257e882120c62336e5cc745012c7ffb063eebe53f3c6504cba6cfe51baa3b6d1074b2f398171f4b1982f4d65caf882ea4d56f32ab57d0c44e6ad4e9cf57a4339eb6962406e350c1b15397183fbf1f0353c9fc991 +e = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = e567a39ae4e5ef9b6801ea0561b72a5d4b5f385f0532fc9fe10a7570f869ae05c0bdedd6e0e22d4542e9ce826a188cac0731ae39c8f87f9771ef02132e64e2fb27ada8ff54b330dd93ad5e3ef82e0dda646248e35994bda10cf46e5abc98aa7443c03cddeb5ee2ab82d60100b1029631897970275f119d05daa2220a4a0defba +S = 0e7cdd121e40323ca6115d1ec6d1f9561738455f0e9e1cd858e8b566ae2da5e8ee63d8f15c3cdd88027e13406db609369c88ca99b34fa156c7ee62bc5a3923bb5a1edabd45c1a422aafcbb47e0947f35cfef87970b4b713162b21916cafb8c864a3e5b9ffc989401d4eae992312a32c5bc88abbb45f99ac885b54d6b8e61b6ec + +SHAAlg = SHA256 +Msg = db9eae66bcacb01ba8029fbac5fef13156aa1a768c3dff259ee5ae6b1cc34c2280374e3d065fed67bddad3e7ded21bc75d397835bf52b4292b745d48c30bbb0935df04168c99d3f54d83d7e7bf8fc8108a9ba0d983f30793c7170f5d07bf2147221d38b7f9624c0c7f8312820f3de2550357f82a8227e0aa99572c708de96825 +S = 5a616faeb00680f5c4ef633205040b497b5e5e226e4a8f493b1ec2a26fe7a0971fed4e1b8f188eba8161266fe558eab539f903c0cd8ed18d21af77e30cb264c6214a175588ed542b5fbdaae99e924094e8c8a22366441d866126433aa45cd37773b9dc3dc179ec8cf51efb8bbdedcd229cd2dc2334f5bf2b0b00374350e6147d + +SHAAlg = SHA256 +Msg = 2e22656e48856240b0f655d2022d69ac731a1c63151ba36e57728a35cbf69c6b2d08029ea0c9af0c3a8bfbb9c3858dbebaca7fe4997cbd715b3cae423ae6171abd7b3c3af25f4832f8c5eef6c1675134167a21e5dce1072395a1443a2a959501e763596bc7aef559f28d78b2843c7bb690124c8f65b34b290f879344216bddc8 +S = c24dd39dc4306bb0b06d548091714820f14a3938437ee76d5302f7006213d388041b79db6125c337ce41d2086f2536026f0fffd20aa9dacffe4e601dfe51310729ad050c4f396b0223492a63d9a011f70cebf8850f61f0ca2ea94800f51e35bbb077e99beaf12fc2caf1744700eb1e027bbb450308e167437272433ee7a765fb + +SHAAlg = SHA256 +Msg = cf785002292f1ef9645f2f2cdc0455b29d0ba1efc91fde0a3ac05fa16995fbbc8e03550009fe6126011f23ab4bf7bac88da49ea4a3a126c941e34dd4da21b571c173ec878f1eefb0c4aeececb1464c969535f19706c9bcd9926853ffa7dc2153b0ef9eff8138d081f5341259d5991404fce6232eb93faa247578f98896704648 +S = b34c8e11cbfd2927bcbf442a6afbbd6ea5c20f5e47cf56c57dca93e10bdabb20b958997b216b92d09fb92cfc3445346cc9e63721b73db06dc9e36727b8daa5f16fa4959c977f6eefcd2fc9790c5e01f31f8190360d380f4332526472e32b25e54781bdde98016bc25ef8697d5d73a6b7bba06fd3d8b9ebe3c657b86f07028ced + +SHAAlg = SHA256 +Msg = 302219bc6c07e628f352a45091719bb0e655875fb97691388f187e377ccd27253a3c29787820dd7574948b97cc8dda3492a88b5e9e26670828347669967072a692aa7bab60e70c596eac2ee72d79ec82209306373306ea134debdf8928e7841361f4791ccb645c1e0923f7085c3cb7e2b99e60b31f2100a327c4225ddd3843b7 +S = 68edf786f166f9aa932816d70b7786e1d88128da0ce1212bba5b56fc8f8dc21d54b5bd44401af2119c4a4f03cdbf75615cf08f3764fba03aed856ecd01caa15ffd6a3604a612c81218f3c395b931fd5fe78031b674369e49b185de6c00b6effdd8d10aab7bfc6671900c58c6882850de5a37b87c15caab18b8cd6bf8e5132020 + +SHAAlg = SHA256 +Msg = 1fd68998e4c34ded43d2e51b1680a6b3fdfdd576033b6a0d7f4413fb39d27ccfce19ce9e56e876b043f0277a8c6322cc0cc2b54c25f00123a88a01f6f97bc8186eca0afef9b7def30707c20ca79ce05fef4890709be31decf89bcc9a018c1a8ec79146a016590f1c55bdbfbbae5068d26f386ecab03d45d037207ccd982efb99 +S = 0687bca5c51bbddddb68d21a912b7d3f89a54517b7f3c6ea5da386b5fb6be8c7a172d6528b2dfe9cdbcb3f4cca1099a1003a69176eb3292a1571b8451693e1554c6ec5e9d336771378718a9e822f02f783b9cee3c0f8ff2654539c495478ba68cca6a6683303a104230e4dde1c35e194eba1ea50e7fe690cb19d2b1118a87be8 + +SHAAlg = SHA256 +Msg = 90d0d6a410f8aa868b64128c039cc698a3b2e36700744969a0e741d0b9f164e73a56b8a60fe61b83a1f4e58a9d09c9b0f7dafc652e789968d1c745df42310fa7ba9b99e98d987deeb0ddea3478f68ec1a437b9b79ef4bf29fef59e2d5024e0321789c3941278986ebd0969b01bc9de71b3af6186d85281532e5894e16a32a131 +S = 13049092c675809b386459eccbe1c540a1a8e9cb674da9d11349f2c50e559387f019154216370752c8ae0a7c4b6e031f414f7a32a8ebf6f4f87d4692caa44e535565e0c0deb9471411126f6dfed6dd860edd1e97468b7e144f8ea6e0b5063d3ebea598b47ef9d6292ab0c05f5621d20bcb389d550bee84d190d79c7d8820a97d + +SHAAlg = SHA256 +Msg = 644a3de6100dd8a36c841446b9376b345d478a329450a66f629313c5cc55133c4782ecd071963d74ffbd9156f63935651f054711b4b8105160ab94eb675e66f02018c185acced5e9e2465fb4897d7c5dca45bfffe432815d22b778230b8d8c6fd854e58f2b7d490dfd67a5e8d8c8e925474f19868c88a19a90ffeaf620a82ac1 +S = 43e64b245e65eada15e66dbcf12332ae80637917e65a68f9f9de45be6ce1854a582634c139892d5aa29187801c7ca47af5ded85e5b0a32e825d706f6eb0b2dffa2f80f69fecaf87aad0919765cc2cb2042e124eda7cd157bedd321cc12100f8ceb3b90b68da13e5aa65c2c3ec184c6abbbf86dcbffdf1ce36f1b5563e8b56044 + +SHAAlg = SHA256 +Msg = 29e9cb3482e9eda5e6d714a2dc730d91bdfb2d42b14fe82ed953a0fcce95bb4a4b30f8a926f003e985b647984e1e03c5df60a009007442c9157a9db599580a94c7a5d9449ac6e9fcf85677d52acc348990579a7a930d7ff6da45ebb9c14127b30711160cc6b3c866a97f4d6259c3c76538aac39c5262ca3d917d321030983a2f +S = 57b17157b4eaaf0a9bdcb9abe4b299a728e6df5f8e03d688037d5e1ed5c9a66c20ac739e1c3516a4cf78155f52ed7d054b5c5fed534b80dd3fc92fc0920eae695f2fb9626cada584d572927a00d612aa690b7f6051dd581cce4748eab9b4d886addaa32c4ed7d7221862354556eb68197b05bebda90c3e01e00e27c5ef547c83 + +SHAAlg = SHA256 +Msg = 467e8ea634f7995dc46c11b8ab0b7508894681e81c3502c3b335e897e6d69df885f49557ce232784e3519b727ba6843bd7af5063f8bc1d610f86ce5b35155e325ce175be8538395b34df67a421fca27e31330b59a41011b290a58bdc8e740401b38f5564c2fd7ae89f609ed607d578db7f1cda508af987be1fd946a25ab9346d +S = 2b1ffb370d518a82646d86828db1fc7e8bfe73ee878da120fa92737c9174688995f2255b29e83b28c244cc563c9b33efd3f9f9e1638e2c16e24f2eae19435696b2f4d1cf73064fc1cfccb2278c01f0979e7de7463bf8417bd6986fbf1d34d382a978ce799582442afcc92b4fe743216b6f151f6a561d979cf683cab6af2ff4c5 + +SHAAlg = SHA384 +Msg = e567a39ae4e5ef9b6801ea0561b72a5d4b5f385f0532fc9fe10a7570f869ae05c0bdedd6e0e22d4542e9ce826a188cac0731ae39c8f87f9771ef02132e64e2fb27ada8ff54b330dd93ad5e3ef82e0dda646248e35994bda10cf46e5abc98aa7443c03cddeb5ee2ab82d60100b1029631897970275f119d05daa2220a4a0defba +S = 1689a8523919ac77cc997ebc59cb908872d88b2855a309ead2779b888b22b4232da9b93bb19b32c1db77ad738c6e43361e9eb6b1a37c49a8f3c7c7ae7e784d19a62138741293e49b1831c0c3617eb43c56706d83314953470636441086419ab9e6fd1ec4f9d5cc6544815d1e02ed96a3ae64c6998b2cf238e79a12164352d12a + +SHAAlg = SHA384 +Msg = db9eae66bcacb01ba8029fbac5fef13156aa1a768c3dff259ee5ae6b1cc34c2280374e3d065fed67bddad3e7ded21bc75d397835bf52b4292b745d48c30bbb0935df04168c99d3f54d83d7e7bf8fc8108a9ba0d983f30793c7170f5d07bf2147221d38b7f9624c0c7f8312820f3de2550357f82a8227e0aa99572c708de96825 +S = 7b286c61b67110e232533fd9d1ac890b52ced71c9029d355c3f34c90c5fce068807e424fe948554ec3946f8d4453596acd29e2d44b45e3460239c4cd92426bbce7d1b0f8f93141fd9f2f80a506947bf5018650fa0babdbb2dc1939622ea8790a1d165b01c92ad91541e2aceb8a775b5ca4bf225b8b03d99a2405bdb7b2fdbdbe + +SHAAlg = SHA384 +Msg = 2e22656e48856240b0f655d2022d69ac731a1c63151ba36e57728a35cbf69c6b2d08029ea0c9af0c3a8bfbb9c3858dbebaca7fe4997cbd715b3cae423ae6171abd7b3c3af25f4832f8c5eef6c1675134167a21e5dce1072395a1443a2a959501e763596bc7aef559f28d78b2843c7bb690124c8f65b34b290f879344216bddc8 +S = 98a7f89db0932e94cb1d38bb72a85ce4143757c449f85cf891826c74307248aa6a0a32c45a10ce4d21bd889b6716d8b323d191952571707eb73313d0af7324a5aa497b3d045d44877d4d8ace8bf1cdf0345dba34d0c1a79935ef94dcc60dfa980a4b1e40b6d30113d557789118fc1eea5f5c3f9f49acc1619643685e6dde5827 + +SHAAlg = SHA384 +Msg = cf785002292f1ef9645f2f2cdc0455b29d0ba1efc91fde0a3ac05fa16995fbbc8e03550009fe6126011f23ab4bf7bac88da49ea4a3a126c941e34dd4da21b571c173ec878f1eefb0c4aeececb1464c969535f19706c9bcd9926853ffa7dc2153b0ef9eff8138d081f5341259d5991404fce6232eb93faa247578f98896704648 +S = 584abd1f5e146b2b01b12f1c6ebbbd5873980282c63c90385c2f7040b34464353bce9ddd9b573d334f7666098e7a7220a4539f4b4eea2fe0320f97cdcbd6b3dbdf76c396a88e8bc73c37a832a86bc1453ad9f9fb7de135442d27080bb2203917a8cef60bc3a55ef73e2ad8ce880bb5e5ba6365a7b354b3e638ee095d22197ecd + +SHAAlg = SHA384 +Msg = 302219bc6c07e628f352a45091719bb0e655875fb97691388f187e377ccd27253a3c29787820dd7574948b97cc8dda3492a88b5e9e26670828347669967072a692aa7bab60e70c596eac2ee72d79ec82209306373306ea134debdf8928e7841361f4791ccb645c1e0923f7085c3cb7e2b99e60b31f2100a327c4225ddd3843b7 +S = 766e1aa607e79968eec237369b4c9140aa6bfb8714b3d97d058a5464482ded41f5036f852112242a3ef9e97e5c31b02622c72f7f37dd47b7eca8b947ef55d3375bec1618b09fcd982e488486a885165f189aa02715100bf4e09feadfc6c2767145131ca87ea0a20f475d6d44b6298443e9dc49fc70b318f04188daf5ec487ecc + +SHAAlg = SHA384 +Msg = 1fd68998e4c34ded43d2e51b1680a6b3fdfdd576033b6a0d7f4413fb39d27ccfce19ce9e56e876b043f0277a8c6322cc0cc2b54c25f00123a88a01f6f97bc8186eca0afef9b7def30707c20ca79ce05fef4890709be31decf89bcc9a018c1a8ec79146a016590f1c55bdbfbbae5068d26f386ecab03d45d037207ccd982efb99 +S = 84f034124c8280ccc4f97e9a326d57e03ab28fbd84562a5f4bc0ae66a888b64c4c9aa272ef567240dfd633560a79c83974f628444df337de9d4e26d10964c78322de3053f00543c0b135cf952bdb23c3bf02c8c6b8d3acc9033fb5ccf266394f4c8cdc4a44824d7dd38697600dcb62247f6a1b69ac14de062d7c66f18fe62d7b + +SHAAlg = SHA384 +Msg = 90d0d6a410f8aa868b64128c039cc698a3b2e36700744969a0e741d0b9f164e73a56b8a60fe61b83a1f4e58a9d09c9b0f7dafc652e789968d1c745df42310fa7ba9b99e98d987deeb0ddea3478f68ec1a437b9b79ef4bf29fef59e2d5024e0321789c3941278986ebd0969b01bc9de71b3af6186d85281532e5894e16a32a131 +S = 787b005e95f9642ba27e5f4d365275bbbbac72bd1cfe292ea78016700aae7af3c9e0e20bcfa54dc008c65a3b91c6e17c67d6229086c5a6f677e6ded96b88f6e8541c63f664a38f4cba641aa177176f9a3e45a67ffc7608d24f4b44065e09c2744b7be4d349afb0e8f2e7c5106816a46c745e61a572bbd5e98cb6b8d34c6c682f + +SHAAlg = SHA384 +Msg = 644a3de6100dd8a36c841446b9376b345d478a329450a66f629313c5cc55133c4782ecd071963d74ffbd9156f63935651f054711b4b8105160ab94eb675e66f02018c185acced5e9e2465fb4897d7c5dca45bfffe432815d22b778230b8d8c6fd854e58f2b7d490dfd67a5e8d8c8e925474f19868c88a19a90ffeaf620a82ac1 +S = 599b511fc8bfcae44054a16c299b5f3c64b74c760fd182292b31f52204c627c853f6fa2a753216026d312574f6adde4ae829680d28dc1c3253ffa96f56d81e1c4b5dafce91e809d9f58da72a94e29dcad52e6759a16a06304e75e641cce626154edeef364c62aea5284ba40270e9050e81cf5a7dfda67a7022fb4dd5514e3143 + +SHAAlg = SHA384 +Msg = 29e9cb3482e9eda5e6d714a2dc730d91bdfb2d42b14fe82ed953a0fcce95bb4a4b30f8a926f003e985b647984e1e03c5df60a009007442c9157a9db599580a94c7a5d9449ac6e9fcf85677d52acc348990579a7a930d7ff6da45ebb9c14127b30711160cc6b3c866a97f4d6259c3c76538aac39c5262ca3d917d321030983a2f +S = 798638df8cc53062b8a312e906527ce8e3a6b2b6456992c599e82cafcf1ddfe6671674202aa61fcb9e83dc1f6bf93d2edb7651dcf869fed987477c26d0a2a7a2c94dce4fe29849c26d477f782a40f2ce1f4050b5bf3fe3e70d00efd284dcb9f52990149ec8c5b7d229db841e32741a74fd36e105e67c1814c08ea9aa44f2ab26 + +SHAAlg = SHA384 +Msg = 467e8ea634f7995dc46c11b8ab0b7508894681e81c3502c3b335e897e6d69df885f49557ce232784e3519b727ba6843bd7af5063f8bc1d610f86ce5b35155e325ce175be8538395b34df67a421fca27e31330b59a41011b290a58bdc8e740401b38f5564c2fd7ae89f609ed607d578db7f1cda508af987be1fd946a25ab9346d +S = c700283557dafd1f8834ec0b7a7ec733719cb0be6edb19f1064ee94c75b8d9d49458fa184f7d6dfa5a6da2d2ebeef0650d8af35447823c83a7737824509a7425339caf99101cd1fe3db883fb98d172127e30e38d1d6f9e3654937cd68cbb4ea228c816064fa8ca0950c7e7b6ad25045574a6a4063b63f07466b2cb5d7311b7cf + +SHAAlg = SHA512 +Msg = e567a39ae4e5ef9b6801ea0561b72a5d4b5f385f0532fc9fe10a7570f869ae05c0bdedd6e0e22d4542e9ce826a188cac0731ae39c8f87f9771ef02132e64e2fb27ada8ff54b330dd93ad5e3ef82e0dda646248e35994bda10cf46e5abc98aa7443c03cddeb5ee2ab82d60100b1029631897970275f119d05daa2220a4a0defba +S = bf3ff2c69675f1b8ed421021801fb4ce29a757f7f8869ce436d0d75ab749efc8b903d9f9cb214686147f12f3335fa936689c192f310ae3c5d75493f44b24bc1cd3501584aaa5004b65a8716d1eda7240ad8a529d5a0cf169f4054b450e076ee0d41a0011c557aa69a84a8104c909201d60fe39c79e684347ef4d144ea18f7a4e + +SHAAlg = SHA512 +Msg = db9eae66bcacb01ba8029fbac5fef13156aa1a768c3dff259ee5ae6b1cc34c2280374e3d065fed67bddad3e7ded21bc75d397835bf52b4292b745d48c30bbb0935df04168c99d3f54d83d7e7bf8fc8108a9ba0d983f30793c7170f5d07bf2147221d38b7f9624c0c7f8312820f3de2550357f82a8227e0aa99572c708de96825 +S = 398cbaa07bc4b3432f0ad0ef54b2402c2d25c0c46f7229fbfcba4c141cd0db76aea42c2436757b16f7397c570e891cd4e6f0a052d0a910c8537d4effb2d07f06890581dde8bad7f77f8781bdc052c0caa50d94d95897508d6848f5e26e5975f1a63c03f45bd5479bac0a40a3e4a1adfef847c3e9e9f7612d5034cc688f019b86 + +SHAAlg = SHA512 +Msg = 2e22656e48856240b0f655d2022d69ac731a1c63151ba36e57728a35cbf69c6b2d08029ea0c9af0c3a8bfbb9c3858dbebaca7fe4997cbd715b3cae423ae6171abd7b3c3af25f4832f8c5eef6c1675134167a21e5dce1072395a1443a2a959501e763596bc7aef559f28d78b2843c7bb690124c8f65b34b290f879344216bddc8 +S = 4af9876c2a520a79282226d953505b166a67f361545a65a980abfe43e8d09bce6d89892e556313351cc3312e214517ea6d62c80c734eb276074e64675e53289ca41840b4d7c9b225183b8162a6f0761bf1a71341b9482cc15ad516bda050da93382567998f844529131b1b560294060b36171a4e7118a5569beff9bea078385a + +SHAAlg = SHA512 +Msg = cf785002292f1ef9645f2f2cdc0455b29d0ba1efc91fde0a3ac05fa16995fbbc8e03550009fe6126011f23ab4bf7bac88da49ea4a3a126c941e34dd4da21b571c173ec878f1eefb0c4aeececb1464c969535f19706c9bcd9926853ffa7dc2153b0ef9eff8138d081f5341259d5991404fce6232eb93faa247578f98896704648 +S = 5a9b01a6d3e08d45d4c359502ec613489b733cd5a9c385e2d3e77594996341bfe3475e1594e6161c12378ff2e2928373e247ab4c0aafecff220339b0f063473195edf91725ae5e114714dd75de8d2f6eb7865912394c849d04fcdbf97921ac1ca79c7859849e1ba09f396c2b291f9b1f11a5864baa11f09f5c24164ee2422768 + +SHAAlg = SHA512 +Msg = 302219bc6c07e628f352a45091719bb0e655875fb97691388f187e377ccd27253a3c29787820dd7574948b97cc8dda3492a88b5e9e26670828347669967072a692aa7bab60e70c596eac2ee72d79ec82209306373306ea134debdf8928e7841361f4791ccb645c1e0923f7085c3cb7e2b99e60b31f2100a327c4225ddd3843b7 +S = 5b5a22bf6be45cf311c78cbce08d9c499b239985e3ce980da04974c97d16a21c0c38666460546a9ef141cbbe06e48d1ae8931f9247fa42114220be91acf8d86e21ee3f36bed644b1c9c4e967099bfd190676e0b12978e9b0c996afa07065b07701bdca9e6c0ca278b88894542457f0fc02b938525ad6b5300fb52c9cfc5b8dfb + +SHAAlg = SHA512 +Msg = 1fd68998e4c34ded43d2e51b1680a6b3fdfdd576033b6a0d7f4413fb39d27ccfce19ce9e56e876b043f0277a8c6322cc0cc2b54c25f00123a88a01f6f97bc8186eca0afef9b7def30707c20ca79ce05fef4890709be31decf89bcc9a018c1a8ec79146a016590f1c55bdbfbbae5068d26f386ecab03d45d037207ccd982efb99 +S = 85ae6a4f4f6d0b8deabcb65fe319a51403512b745abef4fd306a2fbe008580da8a1e976713713bcce3b2a56ca2910743adee058fd6e3dd0cc0174c15ed1d8e1355161e920493621daef96c3f74105e2b65b9621ce7a1924a649c13083ebdff4cd20ca1f72596c763d03bb539cfe45a48bd161574882ef60854a60ce4cf38d1fd + +SHAAlg = SHA512 +Msg = 90d0d6a410f8aa868b64128c039cc698a3b2e36700744969a0e741d0b9f164e73a56b8a60fe61b83a1f4e58a9d09c9b0f7dafc652e789968d1c745df42310fa7ba9b99e98d987deeb0ddea3478f68ec1a437b9b79ef4bf29fef59e2d5024e0321789c3941278986ebd0969b01bc9de71b3af6186d85281532e5894e16a32a131 +S = 4895d5bddaf911a9ff22731726e4d68a4d544721baeb82bea8444797aabd45f99f9a72471737a5f6db09c93ed07728f45fde8110e1f93d4b63d08d4a87398f469ca5aea8267afe9fc571b7eacac0425166b9a0464cfc64d7fee87aed80f7c2bb825a03799106070533a97344c8cd63d5bb8f6707198fe99655a589272a0e5af8 + +SHAAlg = SHA512 +Msg = 644a3de6100dd8a36c841446b9376b345d478a329450a66f629313c5cc55133c4782ecd071963d74ffbd9156f63935651f054711b4b8105160ab94eb675e66f02018c185acced5e9e2465fb4897d7c5dca45bfffe432815d22b778230b8d8c6fd854e58f2b7d490dfd67a5e8d8c8e925474f19868c88a19a90ffeaf620a82ac1 +S = 9000dea9922c03ffd3a1ca689dd4b98c368a128f5153b2895ce995f1771a0816a09fd8b493c460f29e49e1ab6a3867eec293f5d1fbb77fbb77c4a28bb5b9e5d5fa06550edf365b94ed4daa3ab981a33d7c0015bbed2572f3c5b09f4f1922e5626732c8e6b5d31e5fef75d5a9026ca5784dba571ab72e3cf70df4ebfa6ad7b69c + +SHAAlg = SHA512 +Msg = 29e9cb3482e9eda5e6d714a2dc730d91bdfb2d42b14fe82ed953a0fcce95bb4a4b30f8a926f003e985b647984e1e03c5df60a009007442c9157a9db599580a94c7a5d9449ac6e9fcf85677d52acc348990579a7a930d7ff6da45ebb9c14127b30711160cc6b3c866a97f4d6259c3c76538aac39c5262ca3d917d321030983a2f +S = 6244f168e5f8efceb00f33e5f4eaa8212b1b416ba7f1f95948e476755d532ddeed5bb84902df7750f775dc53a151737b39923dbfed374616f944b5f73d63e02d9007ca1e9d3333e77f200d8b021912af9122f861740d0bdd130075d9f112c99fd613f9a2036762dd6237b5c91b33fecc366324536195acf5552147add0ec1c8a + +SHAAlg = SHA512 +Msg = 467e8ea634f7995dc46c11b8ab0b7508894681e81c3502c3b335e897e6d69df885f49557ce232784e3519b727ba6843bd7af5063f8bc1d610f86ce5b35155e325ce175be8538395b34df67a421fca27e31330b59a41011b290a58bdc8e740401b38f5564c2fd7ae89f609ed607d578db7f1cda508af987be1fd946a25ab9346d +S = 5d5cf180bdac8ae14a50c4e8b57b88ba68b1c3527d34a63fd390f33b8b025a75f7ce824f1e20de814991364a97c2ab9e6c88cd196abf6c4a0ac66013a73db9e94a988a4665a31cd4e0731808c88ec1457c481047f3e32b08bff6560cbe85cec212239dc8b25467debe536a8ab1a951afcdcb2cfc411afd5c189f4b0eabeec3f7 diff --git a/test/vectors/rsa_vectors/RSA1024-PSS_186-2.rsp b/test/vectors/rsa_vectors/RSA1024-PSS_186-2.rsp new file mode 100644 index 000000000..576403344 --- /dev/null +++ b/test/vectors/rsa_vectors/RSA1024-PSS_186-2.rsp @@ -0,0 +1,130 @@ +# CAVS 11.4 +# "SigGen PKCS#1 RSASSA-PSS" information +# Mod sizes selected: 1024 +# SHA Algorithm selected: SHA256 SHA384 SHA512 +# Salt len: 20 + +[mod = 1024] + +n = bcb47b2e0dafcba81ff2a2b5cb115ca7e757184c9d72bcdcda707a146b3b4e29989ddc660bd694865b932b71ca24a335cf4d339c719183e6222e4c9ea6875acd528a49ba21863fe08147c3a47e41990b51a03f77d22137f8d74c43a5a45f4e9e18a2d15db051dc89385db9cf8374b63a8cc88113710e6d8179075b7dc79ee76b +e = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = 1248f62a4389f42f7b4bb131053d6c88a994db2075b912ccbe3ea7dc611714f14e075c104858f2f6e6cfd6abdedf015a821d03608bf4eba3169a6725ec422cd9069498b5515a9608ae7cc30e3d2ecfc1db6825f3e996ce9a5092926bc1cf61aa42d7f240e6f7aa0edb38bf81aa929d66bb5d890018088458720d72d569247b0c +S = 7b1d37278e549898d4084e2210c4a9961edfe7b5963550cca1904248c8681513539017820f0e9bd074b9f8a067b9fefff7f1fa20bf2d0c75015ff020b2210cc7f79034fedf68e8d44a007abf4dd82c26e8b00393723aea15abfbc22941c8cf79481718c008da713fb8f54cb3fca890bde1137314334b9b0a18515bfa48e5ccd0 + +SHAAlg = SHA256 +Msg = 6f2841166a64471d4f0b8ed0dbb7db32161da13b2b90757b77c7c201e0dfbe7b68a39c9f010c04c9a404c0e59d6fb88f296c207942d8f00dba1594548709e5175e69594483377692df898d68538da4fc4ccab4b897a815e17733367af51c91667800dece95ed87c228235d23a41789c0a7bec5bfd207cc3fd7aa0e3bd320a9b1 +S = 5d6e26a5e8599ae4fbc49c687f1812a90fba946f2d217cf0aea53f543191e11aca9bd5ad66c391411e7cdb1fd1a465559cf371c58703b35cc8eafc50b78f1dddbc913585d18464651c69ffa5f785ba9213855668cc7b3c553cb2c112c98912798501bd61d65de9eedd65ca26051b0db4b5c1d60e9192af9c04d1a6c962c84916 + +SHAAlg = SHA256 +Msg = 46d0b4b035e9f1a1a9fcb1b7a58ac1980a81a6c918b33cc432879d4be1ee44fb1c997324c76ad1d87928584282766e392d065215420abac2cfebbb13283ee8582df4be32cbd040a6c61fde71b5a39b9b4ed06f4fe33beaea2d4f1b524941b08900475e824b05843316480beb45f790e6f547c51f042d1465d31986b14ae1e4b7 +S = 5576d090154761934a35769283c1e6b66e721850cb9589bf4aa8b6d7b695016d2ddcca77c18966051949f658eb48139b5b5baf6bbc1e16df825a552e4a38d97b8337a247ef0f591cc1ec9ae08f5a91f0c73d078b606b8a52d5679658f66b17db2de19bc48e0cdb2f14df86c126391252ba71bb600fdef6d71241c2bb9cbdc3b5 + +SHAAlg = SHA256 +Msg = 5e611473dd3cb92238300ed54abd603662041b92e9dc8d8d4523ec15fc529b941d54a96adc999b9a7c666bc3726fd053c7a7c0f7be573356b76d2bfe5317f19ed991a177d83ce80d0eef0d2289912ee40ce8cd66b4ac8b4ddbe032cc3d62f9d259c004811b4d2be3b774fcd8d84d0353fa6e49c614041adb7b220b6503583c96 +S = b32cb5cba065259681b9b91eb44345fb89d281d1d77e76eacfae05b1a2bf988b97a1b751c169168c58d73610599a6f856f656ec4c7095f9d7c5c87eddf046bd5eae0298c73e1b360e133dc0d4006259d6cef6aff26832c086ded86ca0a7b5f7f36b607a4eb8ebbe2619a74647faa9ee38352006c41e7e6414a5240a728949e63 + +SHAAlg = SHA256 +Msg = f14b4e3fe82b9ccd1d37b505283797019515cd2de7d993e6dcd73a47f327ce3f2c56f7e70f5b1d13efcdcf287053662d475be524410f249a87842e7d2035e72eb7b1f2d79f90d1ff14ab4e5bc48d1ae78e24b53689bc8d06482f6a185c55093f1bc207b6a0b102b6133bfa482bcdfd59f0d8030cc6ca1754a73eb7c1b06f7e9a +S = 657daac0ade99946d557a5413ba68f6b3e3d69fe1cb1c2d8737626aed7f60cb3a1aca9e2caac92679271121384d5a7a30045124e1f54ac789e4563264648da185e5174c2f85acbb83fe9d2fded35c23882e71594a5dd7ed4b50a08d533702b5b358bf191a59f568db326a7f23833219f26f5e77724d913872608749a586256b2 + +SHAAlg = SHA256 +Msg = e511903c2f1bfba245467295ac95413ac4746c984c3750a728c388aa628b0ebf70bfa2b5b5bf701d4ad6eda4fd2502a09add6ce86ab263e9fa8c79f61d7fc6e034fd42c7ad4a722fca314756a4f643c66f8bdd26ff0627558b53aebab226a1d5bb34361a21a34a004fbf4855a8ee4bd4cae687f9141de5146681ed9d276ae9c7 +S = 56c629af3be9c9a71e06c84681e68a825a631a1ca82d4eeb3be5029949d185da5379e427dd008e32538ce94fd54df8b74d8acf04f6cda6b5c0c691114631a4368bf7c4b60ec124708c435845b7ae1ad498d1f903e0e9ef36daeff17b11baa7862ecc16ea9c69d61b2e3aaff44048a399fb38bd7c4d45b318ac5815cd60506192 + +SHAAlg = SHA256 +Msg = 1034e043d521a29e1f6d84ef8a549b8675c5ebe4ab742e72432bd172c46040358d0d638e74bc6888aee1c454ef6d7485d1a089807a1fe32d79463df3f2bf6ae4fb54dd3445016ff0ff4e5decf7dc90fe033d22699f081d9cd72d861d68879ac022b0571c90193e3fdb5a58a1ecc67757d143be89625963262488b4d66ddf5831 +S = 97d01eb93779f67b3c21364e838df079b23bb41e1737512a79cdaca0bf72e06493ce005fe5e9791532361b072f61ac8b0140458b1f2e3f852c0ff8c4f0b59c4808458680b4e200be87a83773b5dd114595fca4e20364078f049cb388ac8e2e354db113d69017f3e710010c685506cfbd2c0b46c08400025cd26b17c7365d68ab + +SHAAlg = SHA256 +Msg = 1267d9e29f0f39fce1d1924f0c2a435109682bf06003b4845b30100269b4c372c0f662a346599a1db2c87357ee93d62ac0794e86aa060b640f1f2cfb96db3e37d494ff67253e6836daf8ebdc9ae1fa95022dc8528f7853afbe59a226713b4b82956839960267ac2ea2888146d6bdb47a15ab23bed701954fb109faeac17df53b +S = b84898f003259f6d6ce4e4bda1ff9e772c516f04d8a2f9559b40650f87e37484b4ec8face403570f19db16377a1e284eb865dfe8182539e7b93b6bf936075483090fc2d33355f32a78407b809834d65673bcada8ab3bf81d19851b43d99b81bc8f21b2b08504beef0f6747759ce3318b67c3a44ee54dfd040424c9b2ebd8bc9d + +SHAAlg = SHA256 +Msg = b06648835d993a4c66944a5cb95afd741c66708bc4f09228236d911001559221ce28a57e37b3f8ecf7904b7cf0eca36b7a8c4346fb12d851b87df42aeaf0bdaa15b4e70c957fdf5179f749e29572ad78d3006d39caabfb2492fd48aed6c380ad2a11f4769f86584295d12ed7d1748264d0c8d8ac5a4263665af477e4ec5741f4 +S = 523442ef2a7bdaf00570f1b06e6cfaaed918371a07c9ffa6df16806610cfb934201a068ef6a3d27c74ef2daa81ec5691b7d03b48223129a1f142cc81b3b7151ccee7530ef50505429406b96dddf2147263a626f7512c1cd3d11a100b8f84e07401b2a4a3f4fc31309f08c9693eae5d0eea2aef0f4041cdf940cbc39e0cfac9c3 + +SHAAlg = SHA256 +Msg = 5d9551df210cea61f9aec3d2ef2f5716692c5c55ffb13da28afecada7d8b2fcf794922a61b2b617e19e55c538df42e2190ded24c0bbb943fcaf4c553d24bb3f3f51bd9ffa3e1526d03fc943642b15a702c72e2b7f96059d2690e9494138800fff994dcb06137a577e07bd245b870c24b6471f36070a874a38ed59d62e74afd3b +S = 07a4cec5c0e2a58b6c7577d00975b09077e63372ff672e623e1178c10eabf39b29208068b0ad7fcc67375cf44f715cf37ac7d279302a98db7a15ba6bf8e39ebd542b01772d7d1b4bca9dc507f90988b280a3450263c4edc14d3e9a2201e8492818376ae737745c42a390ac042b9a906d816f7f4fef4f431b0d56bbd07ea25521 + +SHAAlg = SHA384 +Msg = 1248f62a4389f42f7b4bb131053d6c88a994db2075b912ccbe3ea7dc611714f14e075c104858f2f6e6cfd6abdedf015a821d03608bf4eba3169a6725ec422cd9069498b5515a9608ae7cc30e3d2ecfc1db6825f3e996ce9a5092926bc1cf61aa42d7f240e6f7aa0edb38bf81aa929d66bb5d890018088458720d72d569247b0c +S = 8f16c807bef3ed6f74ee7ff5c360a5428c6c2f105178b58ff7d073e566dad6e7718d3129c768cd5a9666de2b6c947177b45709dc7cd0f43b0ba6fc75578e1196acc15ca3afe4a78c144cb6885c1cc815f7f98925bc04ad2ff20fc1068b045d9450e2a1dcf5a161ceabba2b0b66c7354fdb80fa1d729e5f976387f24a697a7e56 + +SHAAlg = SHA384 +Msg = 6f2841166a64471d4f0b8ed0dbb7db32161da13b2b90757b77c7c201e0dfbe7b68a39c9f010c04c9a404c0e59d6fb88f296c207942d8f00dba1594548709e5175e69594483377692df898d68538da4fc4ccab4b897a815e17733367af51c91667800dece95ed87c228235d23a41789c0a7bec5bfd207cc3fd7aa0e3bd320a9b1 +S = b09457cb820925bdc54ed3981a13e640cd9d8c969081564bc8265381354c4afea034089d81987164acf5a31aea1f6998356618fafcabbcd320378c828d1de64838583dc0f6445c6b867c9436fb04057018d79b887fd746c7ab0789b54e6717cb31da9e74688be7e7f0a1b65a44f8fce29330c45e79564e452e833bd97362bda6 + +SHAAlg = SHA384 +Msg = 46d0b4b035e9f1a1a9fcb1b7a58ac1980a81a6c918b33cc432879d4be1ee44fb1c997324c76ad1d87928584282766e392d065215420abac2cfebbb13283ee8582df4be32cbd040a6c61fde71b5a39b9b4ed06f4fe33beaea2d4f1b524941b08900475e824b05843316480beb45f790e6f547c51f042d1465d31986b14ae1e4b7 +S = 561cbb9f038964173606ac41be9dfbc922a9740abcaf22e13f475c0365e3e8c08bec940dd95878a1fdb49cd1242bc503677a83cfeade94be6393715b52da7eb2cedc893dcd95a7d4574ba13441b5233eb356e936f2c8f891d25ff7232019b6f344f902951ecb15259ca4e479067886e0f5d341fcf95d25f7444dc33c23002499 + +SHAAlg = SHA384 +Msg = 5e611473dd3cb92238300ed54abd603662041b92e9dc8d8d4523ec15fc529b941d54a96adc999b9a7c666bc3726fd053c7a7c0f7be573356b76d2bfe5317f19ed991a177d83ce80d0eef0d2289912ee40ce8cd66b4ac8b4ddbe032cc3d62f9d259c004811b4d2be3b774fcd8d84d0353fa6e49c614041adb7b220b6503583c96 +S = 3d01f5a9519ee81fb93f731ba68e2acf1677b14c501570313f3b12fa1240dc95507d6da6b7af3e55f4cd3d4f011f98815a2ca8bbd820a7b1e1d48b38832b0925719144f9a20b72f079a8cf6584f94439b62e00b70f4da82863cd82b8667914d76f91279866e3d7593f3023962c0b273404900daf4927e735a6a9fa716fa41fcf + +SHAAlg = SHA384 +Msg = f14b4e3fe82b9ccd1d37b505283797019515cd2de7d993e6dcd73a47f327ce3f2c56f7e70f5b1d13efcdcf287053662d475be524410f249a87842e7d2035e72eb7b1f2d79f90d1ff14ab4e5bc48d1ae78e24b53689bc8d06482f6a185c55093f1bc207b6a0b102b6133bfa482bcdfd59f0d8030cc6ca1754a73eb7c1b06f7e9a +S = 66ff3fb0c5839e83191ffe6dbd57d91299bcd653f6aa1c8a53921647a62db1665574ffc4d0d21acf5554fb0fbdfdab32a4ee4b2e934b2372b4f503a8ee59e6f1084214036aa5379cf30487bb0f3c448c247d19b5d1d901af9d2fdfe686290827f576f1dad267f1de0b37e84700bcc125aa47b1661ddd5f32e1418c23835e7e33 + +SHAAlg = SHA384 +Msg = e511903c2f1bfba245467295ac95413ac4746c984c3750a728c388aa628b0ebf70bfa2b5b5bf701d4ad6eda4fd2502a09add6ce86ab263e9fa8c79f61d7fc6e034fd42c7ad4a722fca314756a4f643c66f8bdd26ff0627558b53aebab226a1d5bb34361a21a34a004fbf4855a8ee4bd4cae687f9141de5146681ed9d276ae9c7 +S = 9c748702bbcc1f9468864cd360c8c39d007b2d8aaee833606c70f7593cf0d151924eac33d36b6b815019fa0575a518de4ea8ce8a3a8e31c4242d3471b30bc198dab341bea977eccc4f69b8fb4ba21b0b90bfc0478f2e34b32006eb7bf915f72da247e13cdc6d00ffe38c2853030c832e4c065f8ac3350ef403a8953f951e0832 + +SHAAlg = SHA384 +Msg = 1034e043d521a29e1f6d84ef8a549b8675c5ebe4ab742e72432bd172c46040358d0d638e74bc6888aee1c454ef6d7485d1a089807a1fe32d79463df3f2bf6ae4fb54dd3445016ff0ff4e5decf7dc90fe033d22699f081d9cd72d861d68879ac022b0571c90193e3fdb5a58a1ecc67757d143be89625963262488b4d66ddf5831 +S = 0fdc48fa2fe56ed535f7e1b032054ccc64a7363eb145eb01b2e84efa3588def1f33125cf71a8ef5b6f2f7b6ae1e616d9afccd7372c843a970f165c103a69416318f5574ff3b286992b78cb8e770f85a1bd0f0f0b3ddfb77712b4277c1910c68aa8c6006ce8463a45c932a84c2334f2f1d4f67e7e5501075686cf8096b17514c6 + +SHAAlg = SHA384 +Msg = 1267d9e29f0f39fce1d1924f0c2a435109682bf06003b4845b30100269b4c372c0f662a346599a1db2c87357ee93d62ac0794e86aa060b640f1f2cfb96db3e37d494ff67253e6836daf8ebdc9ae1fa95022dc8528f7853afbe59a226713b4b82956839960267ac2ea2888146d6bdb47a15ab23bed701954fb109faeac17df53b +S = b82affc8324e78927d466a57726deb192024a3d0ca1524b1c5ad5c0886446c9c331f7c20fe198b92d17f7fe55b15474a4d0ae0f5e09986789323fba7d83dca1f35b2cfd806f350f3545c1f7a5a2cecca45fe1317e6017ca5ca10af414a0f00cc94b9d2ecd8c4d0d5e7d2cce63a16e248b9932fa8fad8a562b8bf824bda7d92d4 + +SHAAlg = SHA384 +Msg = b06648835d993a4c66944a5cb95afd741c66708bc4f09228236d911001559221ce28a57e37b3f8ecf7904b7cf0eca36b7a8c4346fb12d851b87df42aeaf0bdaa15b4e70c957fdf5179f749e29572ad78d3006d39caabfb2492fd48aed6c380ad2a11f4769f86584295d12ed7d1748264d0c8d8ac5a4263665af477e4ec5741f4 +S = 8490a78e4c236970c0c3d7cdaacac90f00b2a3b32a6d81d7ecbe8a79f2f9782861cbc72caba0c2e2220a47460387f72918f2fc401cfc92e7f00daaa514cb1cef343100b56c38863417fce3650e8b96fcca05febfb87b1f2ec7e3599ddce71c185529fa22e80804fbbcece574516536d66a8c303b6d819d50a20663067b6b5460 + +SHAAlg = SHA384 +Msg = 5d9551df210cea61f9aec3d2ef2f5716692c5c55ffb13da28afecada7d8b2fcf794922a61b2b617e19e55c538df42e2190ded24c0bbb943fcaf4c553d24bb3f3f51bd9ffa3e1526d03fc943642b15a702c72e2b7f96059d2690e9494138800fff994dcb06137a577e07bd245b870c24b6471f36070a874a38ed59d62e74afd3b +S = 59ce3efbd192d6d8b53f591c0479d57104849b6e3d1f91bec27c54f17275d23ed254a4de983aaf43971eccd54b4cd6d9c2dcc0a6f6c819df0e85ab59e21135e653631813f5540cf8aa65a71bb14654b4ae0379d5f070889c57c23a74cd6e172ea7b6faa774df2143777b567a638be86eba11dd040de47632923ddd71aa0f94a6 + +SHAAlg = SHA512 +Msg = 1248f62a4389f42f7b4bb131053d6c88a994db2075b912ccbe3ea7dc611714f14e075c104858f2f6e6cfd6abdedf015a821d03608bf4eba3169a6725ec422cd9069498b5515a9608ae7cc30e3d2ecfc1db6825f3e996ce9a5092926bc1cf61aa42d7f240e6f7aa0edb38bf81aa929d66bb5d890018088458720d72d569247b0c +S = a833ba31634f8773e4fe6ea0c69e1a23766a939d34b32fc78b774b22e46a646c25e6e1062d234ed48b1aba0f830529ff6afc296cc8dc207bbc15391623beac5f6c3db557ca49d0e42c962de95b5ff548cff970f5c73f439cfe82d3907be60240f56b6a4259cc96dfd8fe02a0bfa26e0223f68214428fff0ae40162198cc5cbd1 + +SHAAlg = SHA512 +Msg = 6f2841166a64471d4f0b8ed0dbb7db32161da13b2b90757b77c7c201e0dfbe7b68a39c9f010c04c9a404c0e59d6fb88f296c207942d8f00dba1594548709e5175e69594483377692df898d68538da4fc4ccab4b897a815e17733367af51c91667800dece95ed87c228235d23a41789c0a7bec5bfd207cc3fd7aa0e3bd320a9b1 +S = af2d6dc7fc64b1bbb57af38defe3faa2db9d64b7301004d7ca9f8e4a46277e3594fd0baebf13a8a44d78da165536b3b9504395ba7870a75c6dc9f2229ed0a349326ca115c549d412fca32e22f11e1329c433f88a24106ea1549ebc4503bad900196354a619cba6ffd0b49ec50e00d395e54a4883550bf3a0a0fd67d3dbff7dbc + +SHAAlg = SHA512 +Msg = 46d0b4b035e9f1a1a9fcb1b7a58ac1980a81a6c918b33cc432879d4be1ee44fb1c997324c76ad1d87928584282766e392d065215420abac2cfebbb13283ee8582df4be32cbd040a6c61fde71b5a39b9b4ed06f4fe33beaea2d4f1b524941b08900475e824b05843316480beb45f790e6f547c51f042d1465d31986b14ae1e4b7 +S = a2e550f02618bd7ab32943543697fe287d26c7a004e12463275b0db62bb74e481ec5ef66b63018a054e64232bc41e42df0cd22321241175b08df8dff7b7c4c5bc42d0f68f1b162f50fe3380b547db300a06a32497ad6223eacc09633f35f989bf868d77b2408d204060372f02d5c7dfb90c581d85fd01f9d5f94d77d772532ea + +SHAAlg = SHA512 +Msg = 5e611473dd3cb92238300ed54abd603662041b92e9dc8d8d4523ec15fc529b941d54a96adc999b9a7c666bc3726fd053c7a7c0f7be573356b76d2bfe5317f19ed991a177d83ce80d0eef0d2289912ee40ce8cd66b4ac8b4ddbe032cc3d62f9d259c004811b4d2be3b774fcd8d84d0353fa6e49c614041adb7b220b6503583c96 +S = 8ff214f422ba0cf710f4b6eb1f85d27b92366d5045c79d8adb983e46c5be6544d13183119a952b6a3e51e28a367d7441a94788d524fef2fc55c5bb8260dfc748a70cf7a7fb0021a97912ee8932b5fac94cdba189a9ed84025aba662bf894b9365c5a6784afb7315cf938efb307a10a1445aaf34f7694c6d97d156badcd23cc13 + +SHAAlg = SHA512 +Msg = f14b4e3fe82b9ccd1d37b505283797019515cd2de7d993e6dcd73a47f327ce3f2c56f7e70f5b1d13efcdcf287053662d475be524410f249a87842e7d2035e72eb7b1f2d79f90d1ff14ab4e5bc48d1ae78e24b53689bc8d06482f6a185c55093f1bc207b6a0b102b6133bfa482bcdfd59f0d8030cc6ca1754a73eb7c1b06f7e9a +S = 28c82d5624a0f2a0ef61a654aae43f286693d35329b6cc7a1b0849590f5369936a6a139b25ddef924c532e939ca95482c37c6896fd1419c7686478c0f5007003b42fc0fefea92bbecd0db9c60e6fd608bf4169d0d3d55c97a59dd942d5cb35d95c34d1111cd1838332946b02f1fae542f44db7a2a520b47f8a536893630998ea + +SHAAlg = SHA512 +Msg = e511903c2f1bfba245467295ac95413ac4746c984c3750a728c388aa628b0ebf70bfa2b5b5bf701d4ad6eda4fd2502a09add6ce86ab263e9fa8c79f61d7fc6e034fd42c7ad4a722fca314756a4f643c66f8bdd26ff0627558b53aebab226a1d5bb34361a21a34a004fbf4855a8ee4bd4cae687f9141de5146681ed9d276ae9c7 +S = b28709912dbe6e634424da3c2c5cab503253f1cef26a0b63a7190f63dbfde977a7527bf3883d118d942c39f9f72f20a4f0c4948b486ea80f09bee740c3aa426582eea105282e6e0826aab4390720b127a17e86e4c62f153d7949462c871c5df5a4c91ce7f7bc7a1f17efa171806536ab983024a6da6904d3f9743f952ecfe9bd + +SHAAlg = SHA512 +Msg = 1034e043d521a29e1f6d84ef8a549b8675c5ebe4ab742e72432bd172c46040358d0d638e74bc6888aee1c454ef6d7485d1a089807a1fe32d79463df3f2bf6ae4fb54dd3445016ff0ff4e5decf7dc90fe033d22699f081d9cd72d861d68879ac022b0571c90193e3fdb5a58a1ecc67757d143be89625963262488b4d66ddf5831 +S = 2625bc34fcab3af07f6334e04a656774e984869cd28d98ab5abcf75adfed9d83df991f4f41ae77d040f9b2c00a124986cec437161e9a92aaec571a13e489f4bbef58ec07b5f47837329f2d36111cbc7a81f32048301f121105055fa1250fb2f2b6949ea60355571f83f4c1e7141a10f24ac48a6d3fbb2dc3f698ef0dba6224f9 + +SHAAlg = SHA512 +Msg = 1267d9e29f0f39fce1d1924f0c2a435109682bf06003b4845b30100269b4c372c0f662a346599a1db2c87357ee93d62ac0794e86aa060b640f1f2cfb96db3e37d494ff67253e6836daf8ebdc9ae1fa95022dc8528f7853afbe59a226713b4b82956839960267ac2ea2888146d6bdb47a15ab23bed701954fb109faeac17df53b +S = 03f8970b2be5a760d03f0951851d18c22c3be140b93d1ec13db2dcad985acb899706f9b50b08530fa58289bdd2ba5bd5ebc8186fa7ad9f1f90aed84e3136f6edc31dc84d4eb8c83ae52c631491bbfa6d116dc24a6a58ed52e318a8e85bf87cf7ca6b3478a157c58150e7e8cf48e4ac67311958d88a30efcb578e561b050df186 + +SHAAlg = SHA512 +Msg = b06648835d993a4c66944a5cb95afd741c66708bc4f09228236d911001559221ce28a57e37b3f8ecf7904b7cf0eca36b7a8c4346fb12d851b87df42aeaf0bdaa15b4e70c957fdf5179f749e29572ad78d3006d39caabfb2492fd48aed6c380ad2a11f4769f86584295d12ed7d1748264d0c8d8ac5a4263665af477e4ec5741f4 +S = 7aed4611e04d8757715244ebf4942f9be013dd0009b9e77e1fab05679c224cdf9ab3987496e752d4c39e27fc31ce76f01d7b2c44577da98272602a21157dfa3009253b86895b537f7fc089ed689f5cf489e82f2ab11e5e4f05eaf07284a5b2ed39b8c359a231172138cc540cc3c830faf8041ccf55d78c633167a386634345b8 + +SHAAlg = SHA512 +Msg = 5d9551df210cea61f9aec3d2ef2f5716692c5c55ffb13da28afecada7d8b2fcf794922a61b2b617e19e55c538df42e2190ded24c0bbb943fcaf4c553d24bb3f3f51bd9ffa3e1526d03fc943642b15a702c72e2b7f96059d2690e9494138800fff994dcb06137a577e07bd245b870c24b6471f36070a874a38ed59d62e74afd3b +S = 38889a9f3646f67567538de1dddbeeed364074ba582fcb1a13029c00f13c88fc769ff1cb6c4fd0518d41d088b5fd37af92d163e224e4183018edc9a7d1e4648b6d95e21adaf77b390150b221f456075e5d566f2049acf7b6135c7afa2f0cd82e7db1ad242e5be0e0c8d29a36c8292e429ad6aa52d332b29eb9507ae9c1f38dd1 diff --git a/test/vectors/rsa_vectors/RSA2048-15_186-2.rsp b/test/vectors/rsa_vectors/RSA2048-15_186-2.rsp new file mode 100644 index 000000000..b6ac1403e --- /dev/null +++ b/test/vectors/rsa_vectors/RSA2048-15_186-2.rsp @@ -0,0 +1,129 @@ +# CAVS 11.4 +# "SigGen PKCS#1 Ver 1.5" information +# Mod sizes selected: 2048 +# SHA Algorithm selected: SHA256 SHA384 SHA512 + +[mod = 2048] + +n = e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049 +e = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = 6504921a97cd57aa8f3863dc32e1f2d0b57aff63106e59f6afc3f9726b459388bae16b3e224f6aa7f4f471f13606eda6e1f1ac2b4df9ef8de921c07c2f4c8598d7a3d6ec4b368cb85ce61a74338221118a303e821c0f277b591af6795f50c40226127a2efacce4662fd7076c109eb59b18005e7165f6294a6976436ee397774e +S = 335ffadc0b1b8bd2b1eb670dd246e76dcccdc955a1687a15f74aa3e1596ebd43e607c640525f89dda95809cfd065f1be4e4a249477d24f400d4d4c9438a0af95b26b28b416e42aa950e2a52851b52132048f1b1ce944322fc99c1aabb49b7fae4c2f0fef674b50adee3bbb5c6c33822b608e4b9577275ca20c710af9fc41b1c01d9c0ff6f0d8324dc08e1a76e232d8feaa06c73bbf64053bea35f1c528b2722764822ef1ff06246e75a9a22a10da4ea84fc2441bea24b35506f8447fcf69093c5d21ab0305cce2c7ea9ffac357c664b491fc55f2919ec490c38accbab378c252ac2df3845acff575ec7524cd2f586cca1497c74f24b299d6d6254c8cdb1d227d + +SHAAlg = SHA256 +Msg = 1a53a9d6312918f3db6bd5766da981854166ddf2b613ebc8793f50230308fd4563d50ee73e47f2cd146ccd9dc4361af1532c95abe96058891ca144f971f1a22e203a0a73183c84bf43caee8a0b369ee01d0a48b46df821767a1444e8d341552ddae96522c8f216f2f1ed00e54a9053792866bdb44ac58eb81a011a9830df5e6a +S = 7b17b13a5ce4485ca3b979be3b14d77532fcbac14e460a54515a6aa7d213ef1410cadd009ce60bfec45bf494514338913a2792bb6086a4cc21dbe852c2b57a3ff5931039973cdacbba96e2ee77fb8ec6c87c14ea10762e2aa9279ae5192ca1c87ededbedfb305fb006a51602e6bf4dc43b994f419c979b4f30719827a348948214ee71565361f668dbf81ef6e94297a3ccd68357fccca6dda237911c938d6e71787b3d4085c66c7ca2aad2db16274df23ad19211aa6380be75cf0b19257af4df5af1e62010dffd23b9742f5369e008224ee40331f2387422095f6e5afe0e125f855de220648a845cbde542ff7f99d926868819aad924b3919654483bbc6d8dd8 + +SHAAlg = SHA256 +Msg = ddf5750aba4be69c944d71896361f210f961ee6b38f96e5481500ec76fea510ac6cd37eba6e21249059f95d55ce32e1a9f2196bb73c1a6fc9cc36c84b4a67e6223888e4d4b8e3f30038637e647cb75412d69e5521b8232e438f1dc4a202c8a5bdc6fa1ba1117155b774c80428de2718e8c8106b79904bd143e2087a01b461efd +S = 9e32925845931c2baafbaca8df109cccd922ba72e6f4b838a76198b1f3173e9069ccf75d0c96d6e2644ade92b29043f6bdbdcfc8b0b2794b4ee16b1a8ef8eb2dd2fa3da4bacf7659e43e70d69c132bf9cb1ba8584bf3c1e0a7c8803566177742c977e447d357fb0331dd3112e7d3c0f1b5772a7cf5e1e368cb58b1a18889cff9136bd56b5cc3fe6bcfc5a9f26dd60715a807f3c7ca236c89ddb36ebafde62b35a624284121f56d81f5a4d215b7a36976eed2c78a3c44cc864c6a5c01f4ef9f54efc4beb947b96e9aeb50af6221dea96d620baaad235e9ba6a003fdd39f31388a4c3579dddc0a51e879e1286ac142601d2e5725c1ea9d44aa896a12d29047aa3e + +SHAAlg = SHA256 +Msg = f866ae4a8c37ce71c0e047ecdf0b6bd07f8b11adbd92f363ca245536a7cbe8242c8ded754f1b9d95a34bc91f1fc8be3a21086b28b27fc61c0c136b4c5acf8648bedbf48a98aca54e067845a4a7ed1bc3a52231a0f2ceb5bfd1b89f49996e9460b53a0aaff052ae45f04f02a3ffe04b1312c0aa3c03e589f422fb3855ec10d813 +S = bd4d7db1d17c3f56062a1dd4307d939ddd403cbf04b0866603541fa8de37ce80bf06d796efdead6963f603d81e376dac20454c4964c1e6fa347c8dd7684215580779be97f94c8279efd0169ea0cfdd282d3538bafe067ff5ad9e624cbb24f42f1811287fda0903afd3b516875a8ebdbc81b4a63286a35bd66156f657f110b9909e983043133cbf0d0fd1cddb4a3e1fe0962e412af91682e44262869524c92557f5d8fb385fa16e87304aaf534e90d256684600381770b77629d1a7e8f4cbc9f956a1e0d2e41bf57207c677abf6f38094ed0e6ad4810d49eb09b51ed29ad6087f72ee019a4f99a816d142c155fe91c93c38f928fb1558e3743d545ec3cf8ff4b8 + +SHAAlg = SHA256 +Msg = d737bd2729d1835f243983fbc152a19a2e659a5d211ff3006dd92f4ad31d45a81a65511561258a3cb50c74e1df87577d7f88ef285f8565bc01c37e387ad41362835fc1b1ce1fe169962eba087a84f6e18bba5307a4149b6cfabfd64af357bec23cad73c416c6702ef027be383b4f670f7a862ec098d57d587f569f49e6ae2f10 +S = 581e5c157c6b960933bafa5d7fee2746596db490a57761ade4aea0f76ef658d832b603e8cb9e03a853be53e02d4deaec2e7764e14415173516935db1b868c8f7952eef47c0cc57f011853b6a77ec99b56a01c0f4a1b083f123e3dee8ee1312949789b3a410908f2afcaf81a18ea6dc685301d471f91b1d730693329616a4aa460c53825c3e24469571de2b55fe7b9e2ff5031b2d3e2aced2432fa85c4ec2ef0356c23ba81dc589a6aaa470d15555636337014cee7c6c76f5ddf35e1aa0aaf342faf80d4674692b902c8465f60a8f55d6b3c2d3ea5a6bcc24ccf3fb3df7eb0e50c845314d26ef5ed8141b73f79ce64d25d0e647d66c875503c921317892d169fb + +SHAAlg = SHA256 +Msg = 10e3b453719469227b51da0c41b5cf0fd94b32b6b3960b3c2855aff5560433ea2ca627c3c1c281ebeaacd8ee0b05d3262d85e09651f829160487c4b13439294b42baea86585a9ee7fd581e35e761f5221054112e0c48bfc799d0d6b5787e31b57ba56364e063a75fdddf16a97cd01d4da93f2d44898db4980eb74dcac9d93372 +S = dd2ea03939bc68d1d40835a099aaa3ee57a4f11e30ad4485089074d345e57363bd6d3c17b86cf35d0629ea91730a0c8ee364ac80a016cfddb6875e1bff463ae284b84959e52046945ee916256582facae719c33c6e892a3a7aaaacdbc300c76486633c8720e6207beb6401f1258997a0bd33c752ea4799ec99685ac1fb9066cae45fc861608cd74aadb367fdebd28fcf88f52ce4942f74c8a53e809fe4953434d6484113501a40605a11c460bd9cf290e37efe33b161b96b63c2270dc1c3669100d1085afd738cf8723cc9f232f679ffee07e1d536a7d56bd2248f37610fa582671d6414440caffd10aa3d09b95fad2c2c41bf0ca33699cf0749110f817a4f63 + +SHAAlg = SHA256 +Msg = d130b2fd9a7a1f118a5d9b6c4bebc0d4d44fdbec8c613766b2779f74fc7d1e7f7e48091cce273f3c66bbb0a249091c9beace1de9491268005f005075bcf58cb36fd739f026a8235f965b40a71de67d95a698bd0dcead1f474520803876c0424d6a864b5fe92650e4e3e453620fa96a2ad256c3426258e5a32b7d38a47205c8b7 +S = 2b6c07656b398f3b3387627f51aaa51e8f905ef07d7bd82b355396bf32865227f5bf3e0cd3e8e1aa44841e4028e61c58cbe839fb8b7582652c37f7fbf8b51fab980e76635c38aca98b9927dc1e5f17633339d6e903be5bbc65fd7a7a928ddf459bef84a6370c3258dcc810cfe272274d06a1dbed89bf121be3c1699fc129d55d3deca9d7b10de41bd7f47944e26d0e94be9a708b10b3a729ef9ae59ac986de71fe4522284873a19bc177804ecb9acad651055e7dc4f5d29590ebc6d6f965a51dc5b4589699e01ac42aeb579032d5954f160cdea380b0f3c486124bf8ed8884c6861388ff7afaa2fb0b07cc999048135378a16e006d83a98837d259568e89823d + +SHAAlg = SHA256 +Msg = 811fb8028f9c8ce411dcb6ee9f6b9db60928b9ad8da65da14dd3d48600d7b075e73f5ff5025bff7a85e4732b86e2b7e8f8cd708cdcf3c86fb61978303e6526b1597cf26247e74cc31ebb08247779b4af673329a9b1f060f5395287dabc765406bf1c9ad2c5081ac7c5a89b61dbf63d143ea00a8d7266ce3abfc4280ce1d2e27c +S = c33f9dd337fc09da689d1be3055719701581c3c1b41ff7e574db6976ff7b9911c5a4382c9fac346b8dd6ef150f5d194853df3be384acb03b681aab5c8844e31d39658f731417ac942b88b2bba674e01eb151f35add8fd0e65c4738b7150e97c20e577bb320d10f872800df2df55095ac67b2fe4b51805a7c6dab3c288eda94c91699a7f85929a3f98ec92008bf884d7037affe0638a91c540c351e2cd41b3b26f38c4ae7033fab2115f840a6df4c08173c7052499ae817052c068c6c34942d47a0adefd40eedbc7cee3f4898c044f05790334be9423c5231eb5696260ab8f7d6fc6e5b1b86a7e362541e20513294b9d5206440eee2198976584b5840fa68e5a1 + +SHAAlg = SHA256 +Msg = cedfd1c0126a62aea3e7a30a7309c258c69ab7c2f028276760fb88f5dd4a877a10aea67743d62a37687d345e5d992ec56ed568851c4203521c490f0ba3e5f08ee10f06d1cb798d2f1e7ec1ffa159466baa96c880e3c7df814e7835818765ea304aea37f634ba523eced49215c7b3d4f381c51dd8d01f819bfe6f437f12323d08 +S = 18c454b50814f00da88589f533b87f8ea5195bedbd3e1b2fcce3faca0ab768d71d930a28b29d24044c231c0f24041800e762cd7271c545cdf7f9913f86caa5ea493d1a994902f9ecc1c0daf1c571c2aec78c4ff75e873fef3d6861432f227dd5de635d2315c93e10bbb3cbab1e981ab547b53383143153c0a4a3ce2d7576d89e688327f16636f3ee38f6dbddc0ed42af36b08247d9c91283ee2c52811010fb0a10a3de69b6e42fa11ad44f76f4766b9d6fd0ea179790cd37ee5aa22b62b8010a242ea15c2d0f9cd7564f1645b65cc438093944d60eb0dc42afcd35b16c54c9628070e5eb93826003c84ae66573b84a623a288997bc57a87a3034a392a4e54b80 + +SHAAlg = SHA256 +Msg = 7ad20fc0e2886691319e5c41a6e4d438e30b0bcfa95a7ba8e3a20040e6743ac7f791322f0da24083d92a2c7a04b8934cb8618cc4616d8c96b55187f4f2de585c66b763b4350879985775fcf3e05143cc84113f635a005f7de034b2fc40c04cb2d12bea77e121d979b26913d4c217ac634f036cd51b79be036d32c8805883dc72 +S = 3f48d2f019745b091588182451539c3b1c761016a8d3bf386b3ef046e75c23628be14aeee1db6bb876485a2be2503b39603ed9e07fe35f61cf2051bd8e4ffb281ee960b171efc49f61be17356343aac7d260a1f2b29a77cc81dff36d5d5e75dcb11151501c621e0fa1883ceee2b5befb8b95274f0b3b3f0af0c2282a3527a200346f27c7a6755a5a4f5be9424967e1ed09a312d0d910156dd8df5f6f209ab5bc05b86f02c3d3bd4526bfc0f92e3542399592b5ff47792e3fc8b11e367496d7af6013afff2c433f91f9ae479ec70116e0663d53f8e4de053a0da5c93463271564768a7c0df098d744758630659b84964d61aa940ee0aa3aeda96e8a14dbe0f813 + +SHAAlg = SHA384 +Msg = db2e9fbefd9832d29e6015b976734ff15a5c1177a9153b38e61d22c8a6ca9056ade10de054645da32eab4ad6eab6a4977bc28526771ad951bd301e2f5bec6911af44aab6cc0d30be1e1170615261026170edec3d4a5123a81af24f39674acf642880fda92c3cb30bb9b90ec4741c71378004cd26ea622025458b3c4f918bca37 +S = 211398c068e60ae49ee2b8b7cd96171373f4664cf45b62415d9bcf119184c03274aec2b3f04c598043d1d8642d53edad68d0e0bc33fdc65ed69334ab52303c839cbbaf0586508007dcf4ad5d297f568039dc16a1e6c08108a0050d5dcf47523e4868e4be72f20d789b06bcb92484efa2fcd903ae280f42a509dadbe62dce1c6d3aef6e4ff78a745c8500ff0572748abb1a220495c1c103a72c940206347c16ae6082dd1e4624525aa8ed8f118d09be2b8535d042b29ea3e2c6ab3c990b4b59501c3bb9d602c7813a55f4efc129f4dfd0fabe0cf6b8c8c1d9126c5440cbec5405722927389b3ca80a0872711388b5b099cce6effedfbd9befc9646ea8a258fdd0 + +SHAAlg = SHA384 +Msg = 6574a1c157e1d5f399daeddd816c9410b0c80862f3961ee4678b8514e13e4e548c37ac9bd449f96b8323fa032a2164d5c3689f3a9431c9655765fe95976bd78f5d3d304c0cc22fef8a5882faa0afe7c0a4def21e55b00b66063fb69cffc517e520aeb53cc7f27e67f4a10b29abc026ba9a538974fcbbe9cfbd42338fdff5163c +S = 03f393bf6a20677a92565076e7c628a10490eb41b4509aa6ef99acb0ab889ccaeab98617c59dbe499231396e9daff7a2bbaeb3e3a10258d4f605b80c41d0166c5f0a175a7b42476c03e57f84426f4de98d74829d40c01453999cebb996c41756d47f0b79fbfdff2faab111a5c7f07f8f760e44d9538fd1e3b3c4307a79158e7dff4eb0f0e567bfa0b67d1387310ac4f390674357332e85847c26fdaac1dfe7c95585a604bf70e3d4a33649c6c4861dde05ff11cb5e60ae590657d3f455e6e60ec55d1752493768c92ec954f25b780dac2246a50f87cffc11ce9f78c0c1339d9a7bd9cb7e747ebbfc5b6669f4f46944e897695171727b89550e2f9dff74b3de7b + +SHAAlg = SHA384 +Msg = 9767cc530ca77270c9734593cd5fd811ea852df6c97bd79d2e825c7d7d00dd467e31f92d5d19ee83f5bd018d4d9221906336c72b295e20e9ce106e173e12acd3eca27066cf6716d4aaa81bb191bcc735a9c10f932f91b987bcf2c12ec70dfc1b6b22fba76a793288739c59a6a0c3132a4390ced7e2fcea9d80921d6b1edb1646 +S = 5f2a2b0588373371b1a9b446a2a75a10f2143e7a4d0c0b766e217b7b938eefcf8b1a46ae742f9a390c3b02f627f9287fa7126dc1e571579b87a6beb860a012e73efb7df853bb31dc056f68373a91af044592b2939fd2f4950178bf83de1f0affe6066dff573c3a1ee6d413b8dff77200cad63a29baf63999258a49e55c713281ea71e60ad2078cd4fecf6bcbdf5fb2121a32191543a16e51de7d6bb0ca0c897a8d893f00f642111393148f6acd417bcf702b318dc4c4010ab1e5710a5b94f411bc5cb54ea3bf211588f2b7889cb0c3af9545e9a1d5326062eca6bd015f4fc383db371cf6407eb46b501b19a862ed1ef9e943c9eaa2aebc9b6f203e39a9e692fa + +SHAAlg = SHA384 +Msg = 974cd6e98a4c88f9274b47c8da1483923bf4213dea137c47bd03aafe1e9a00efaefdd8a02ffe9182a0a8d821a917269e3a8e8a5f70c3a905b87d039e3661781c68090a070657e46e2d099c23bd8db528001668648cefa39a6a10539c77efdfbc0b98f484d90088a716961936de1c3617d3b541b4073f73f01ce2205fa9e93db6 +S = 9c36a3f2750370dde85811caae4d361a7499f8ee1ead65803fa861100086ee0f5d96cdb33202916c34b7d86128a023003bfb55eb43a19693fb32c17393b77777e34fbec701d6d0daff8f89ec5c336f68e5f680da08bce0e8e567d86601c2ce076c603ab292de50c97857fe34d59f4105c6ced054e5982397cd9cbbf08ceb53bdfb90b6d75f231a601098827186df27980736ce97e40974c91011691c2dde453760467b094bdeaedfb0350c1eff96f236af768dea38c65f520cf0b36512df938b31f9f74351b221405b1cd04efa7634ac7e966029f45f77afb64bd7d2be4e5922a150d3bff36f52a155ba4ad168036a440d5060f2ad6e323914bb475a46a5d35d + +SHAAlg = SHA384 +Msg = cde7aa5cc4c1185b2aa569af9c4cc6ed261e3ff108ecb52ebae1f7422db62bcd54267084e3a2c18157451cdd360ae481983d8539e62f560be22ec3c6e7b4abdd72df0776e221cdbf7c391481b26278f7a5cac0e0e845bed3874377d34800842330fab85b49a803bca36996c199bb48f655ad390d9797b52fb1085b90d7007e46 +S = 2dbb212c33cb755b5346a04e428ffcaee7978fcb2a58254d7dd94b6d266ffd3deb9bf587cfb78f902fd5cb1d9bd47bea3759a4d89e00aac35f76ac88f291b71ad7805a7e42d828a999f7ce971697df2e04724a35cf3f5ada29e35dbb4b742c31f3537baf8b6d3bb5068a15d7ee611450c10fba365860dfdf83bf648d48d9af7dcc2f90254b65b50617036a93f7528a1bb848c6b4e5e319a8fb08e602a7373a9dc4b337652a04b548fdb1d3153820c547bb4d3f8ac1b3258ddd89d7d6d3742dc5ad5c6f455e4bb7e8df6b640b27f1e9e42e839bde6033beea394cdaeb576863122d1fd5c5abd6eb367194af71ccae198f2a4677988c5913aa3ec2942fad989590 + +SHAAlg = SHA384 +Msg = a48b30a2dd6d2629476cb424ac7b0fc014d29d9939930b7f3bad9a7a9500b90b50c3d9b576237dbcca2d902db6eefc1e85d97837d269a17240074d1e6c2d1c2a20cc50a0caebde702c91c46f54e69e9fcf9574b11a74d7c859672c804b82472f7e6d3c6bbf0d71ccd560f8f26fa91cca5ace3a0ef7fed30bed96dea71b4663a2 +S = 16ecba74f9249efb948dd42bde29cc44e2597ded40a345c5fdf03c485080d2865138e937c090b93794b2187b6d7ecbe5166ab311478ea93fcc7143eae4106154bf2d494652163ccf1b4df00b638cd01b05746f282b1bbcf12d9174330e665676620d40907119299769e8f61e56e714be237ca861197807fde2feaeace31d0fec0b3088542053f7d54e1c30a069b3967ceeb2db7a1f9f6d0b673ad279a185d8730e4ebe402ad20280bd7e7f286ed87a25c6c1cb3c66e5cd048170c9759dba3f49c3adcf68c777f3cc9acb4b17b27ab7a36a4d6b5f1fdf8df91813c6378aee60559d85a6ee7e9fc8afaf3118dade7d7a0a8f7449a098e8293b59359d967310cfb6 + +SHAAlg = SHA384 +Msg = e25879fb75fbb80255b7abf6536cc05c71642a6c9635341586e8d541105a855a8ae3500d7a36294e9688809ceff51786691f116e6e184c8de382f0375bf448608ba0d160ff3391f30bfdaa8403522fabae3036f4f9212fe2e9637433d3472166cfd7257b6abb99fa9b5e5136f94cb1d32adfc2869f1a851c7ed588bee01ab673 +S = d3439a1390fa1848a7f9d54078538d3516cf17b535d1c86038362c21f8aa593cfd0ec2e33aa68600e1c03e4bbb8f2fd174b82fb83059fb8836283cf4ba288d1ecd7b48c9c49385aa9d84eb89c304f50ab1d1f65765b7641247a6c21b4d66a3a54cf2af11cbbfc10755eef49c3df81b9b53bca992e88bb98de1e073299b81dfd97e1aaeb24612d5b73c0a97f2d0bb1e2bf7eb452bd2cc51ddfcfe47d6690a001e51405a7e93d8731bef1093dd21d1e320a6aa011e973e7e985e2de59a000939e201b0f1098444f422b97817fc60154ba58a27ec3a82e27d998b9b3ab74cc4f95101635cce10c0a8d4379878183ec7a1b6f6cae94c72e756c415becc2c211b260b + +SHAAlg = SHA384 +Msg = 648de8c418551dbbb731a50e33943671085e3d6c2a0273a33be8b15a0210053819f9054be5c1634dcb8dc226a12bc8b163f675c328fab36a54592e720eee652ef52f02750e5866ea01c6898086a0013e1abd6040f6c2c3ff418ba8d285cd00b460f986477c634e19c0a3a126c83b089f937ba7ea7ca2ccea6c46c8804df6fe52 +S = 34de98ac564092d4adcca85986e83402e65982813aae6d50f2a85af7fd22eaa61d475326bcc6798a5f34b4736c8bc0bf591c1091d86a09bff46199aed1ef78db34e575c1ce4778de14eac3a1392a62c4b0854dcf5b3320856cb34c4237034efa1e551ff26f93a86ac0a474de6dfd70cc49000383992e6557bde5c4468628d7f1cb0ba987ec39cd595757a48c25510461fca56308c161a0a79079fc714f0611e0f3fff11c2b36a8f504ca903d71645c08a9923185353b454e78843e2ae692da656c7cdb45a80668843e9154b88073fa04b947cfdb6f5b97e6742790f8d485750148d3b6d0f7f8d99a7a8cccd21c4c8ef3757b321e3c05109aee90a4c168ef109f + +SHAAlg = SHA384 +Msg = bb70b663d157c330c79bc603ff28c35d41b371a6a4054122b2979b22c7606b77baebdc2cbfac63758c9400e2bbe3c1d8703e87423b010c8440d625b0958745fdeb10437571f95dedf5e27c3a4c60baa2f5072191f9c8b58d157eb56c1bc31fc5960872a4ade5b7824aadc2747b46b6a21837c7fba60344277bb6d4bd23bd00b7 +S = a9f9443f14a80195bd6325606d675c4acc6d383777eba9440b9557cdc5d99d221732be50540410714b40343bc908b058aa94db2426afca198b01188fc2ce530e7552b3fa3c1dd90dcfddcb5582303861433a465aac610410e45cf2a699c7b364ac8d72493e538426c454b694ac2dbbdda92fc5ad0b600dbf02166b1e2b21ea470d7df34359925c29d6284922fba05b7b1373dc3ff1a4e8e0e8cd68efeadfe7bf5289a4608aaed23090da391d30fd2dabccb7e938e128bbb37bb4abb468c2c2eae597de1b964c40c691d694d27fbefbbc2876329260d02cc63ee711ef475582ee4de3b079c1805bd8c90130bf13c7e52e955e58878e075d7f2bffc75e9badc882 + +SHAAlg = SHA384 +Msg = 627accf64851e9f19bc86ee8698ae687b950b9e2635ea61525506d27f216cc358d3eadcc57719e9666418139d622857c64b555ac384d8f3e03ac77b54a0dedc602689cba5cf17515e2e15c75c37a20bc6b45b171579f8d6428737c91f6497d47e680008affd755b539336564d79ca090f78836fc685c8ad0bb30e4849dd26500 +S = b533cf67e44e2da3c4acd7cd33af394d26ce2effa55d7b82d31f38afa71982217f66420ca77fb94a0f55d5c18c5e0182c3ea64f4fdaa3f62b6e45482532969ddb8a98acba36217f33211567ee84656f2d689440bfcaef4367e7bbb2d7b59b9371786813e6a262d97a6354a5d704d05b26d92f8b53f4404b482b787aabf20ea512f10223fdc97601619aa9629dafbf3d0611431abd82dc904478e119a972a7b4df0497a2e4d40a0565587401e842a319e06f101b2074e3516d07bb78733611adf2105e3ca30d24be1c925af3d377eddd0400c273d673f6b03ccecdb5e32dd894b8544af974ccba58a2124fbb7152add4182b553d66aee70afcb2193d4db48a0f7 + +SHAAlg = SHA512 +Msg = e4dba4692a6628b501f776fec7fe973d655154268f669bfd47c624aba3be5311d158619c588ab71aa0ac9accb52f0dbc488df350f77c7520ce67a3050d1e5e722bcd75081c2b0e64d0f3483cfc981eaa1c358fc7b9c2fb7ce78ed19513e96717fb2129d4feb1f63c96b4c77623a092b0ea306eb35da2f7ba9d23f4843d8837a8 +S = dfe58c84ec3ee5f11b265e8e7d99b416d8e7b166a38d2b0f9027be73887fad28947994a2bc227dafcb272d2d410af31afe16b96f51c9ddf62b417d03e2af63ea4a58d41e4649712177c85788d837fadd223c4ea7f635237a93b181fe1c0fd3bf2d8a7997cc9bb6ca099a0a36c4b9e91aa780a3d5edbc283cc316a153a101fc8c33d0035e6c1e1aca731ea765a1e5fe1406ef7ba8bb8f335b8d2e6ce0b9fee2f5416e4536b280fdc40860c17e9da6bb361128ee53754bf68f54c2878a4ac4d349703066a6fb96220e15285fcb41b398b4567c0c167762eb6ceb4f0537c7fb7103487c78a98093209771fc4f4a9821cc8eb11f15a0e35c54f6d5d31d8e8646c229 + +SHAAlg = SHA512 +Msg = 0ff815e8e1ccf66c1a09c3b1875953c44571542729e5d8395e4110f2505556d3c9d0711d5a111542fd39aa99f8854e5505db1db8afa2b084ffd7e3b3585ddc67a0954924a02fe83dae404d8c8994e066844525cee78c40e992d8b8b3e31d7befda6f22647bcf7746744534f3002f0ee00bd8f2d2974c8f515e6b1459b93d3b54 +S = 19c45bc7c6b4445a2e4eab511de011820ae0a0483e957b922fc303b2b3b94b31205c0eb821a8f33b3ee53d16116c6a7be99595b2c16cbb1162f147e7530e48c60861411b595d4e7d1a1e852389eb98ca6856e99cbf121377db96961b4a55478f54e1cc0ecca349d298dd55b7dbfd9a1e97a1e248ed9c3e4879189925b1846010e567269376a5321476cdb6fa6ba3d358ccf737964457765419245e53bfd006753eb64054e9f83eef419a7cb99ed4bebf31823e3f8b6be81833ae164774b044788b4fdd6170ac499ba60b87e8b1515d4d1fa751fb4f74ea674290a1a8f24c0d769d5d8aa60ed2e4f79fa7e2aedb42e5f18811b90d96041dcaf41e25b7b2e3e998 + +SHAAlg = SHA512 +Msg = 646919bee4a47d978d4be19f1806de5ef849a98433d68a877183908e523d848e054d1bb217da6f0188afb03b243f170310e61c43a472e9cd78e20e3ec26e7628dfc79a702f9ff4f4266cb771a069bda575dec1b04ea2cec0b7def7ed75134962195ffebed5fcf3ba8f095d0b348db78a4fb9ff92da6d21a953feb4631337e484 +S = 084fcf4ce66c15436dbaf057e9de7dbe99a20fdf1ac491a920580a6e3b304629211577daa07a38888eb65fe9507e91990783e05f0d9820afc37623ecf42241c66a8bc7ad0e0f1f43b321fecf4a9d76106d6040588d13b58aef68037f73500a8d34a97117ea41c0d2ab51425eb62d863a82ed56e7082589cfa3d55facab67590ed603fa8fe89553af279f36bf32d7e7f81f24f17cf066ba66d090130a7ccdc44848a23b691837f51f589ce3076bbd53088e80958681d4868b0f957edaf95e175dae09cecbbdd39e01cae14395690a61af5d7c4ae882092e840204823a0710e80f81c4011f10a6044c79a07374b75f13843ded1f7ee3fd9abb85914f1a25b3dad5 + +SHAAlg = SHA512 +Msg = 32d9829c40eec978d8db1b744f7784b937d955ab7817d3c8a3532cd282f9af30f4423b92f7fdf8d4078e4625a737f3683d96b1da226fc7f5faac069541a2ff5a2796734d9e800bc6b10e498d17ecbf3f08437ff34f80d21ea1562db42d06609074de11165bff69177e640df4c820500741e7a73e26d05d093f5987776dac3b9c +S = 92f7509366d0d79e4a350ceac7597481b3c4044a7658f2aa65165fdcfa0ba95c9083156c9b9cbc220fbaa694bc5ddd5405976be45845fe9a2facd2bc1f1a37913541a918ff75a8ef26506654ebfe0501ad46bd57e386926136c38be16d004b1c8c3da23c58632ccba96dd1857405e4712488c2c84db20f82711212222def48ea20efe09e5b476e28a60170cfdb175c7463443f8291e894eebe95df13b0f5ed0d504958813ca990d2e32e969c58543f77ef52dc6f8ea539107a4dee46735cc49903664ca10a902634733f275a0a1f145a9bb912ffb4af550ec08ada902f152164c92e7117f2f2649549f59e1ef5398b515403e3f3748eae0b98a0782e30a9c69a + +SHAAlg = SHA512 +Msg = 049b80ff6c1c1445d472a70b470c404ca0ea2e2a4c52ef3e51c5502c8f31d67a46685da2d9d1ff65d25d376325bd46e9b9d3d60a2466def1b719c575ba9ecaeef827a3477f1d6455a115a3673e00da1f46a10c807945ac4771aeba7fe3502f5022c09b18e4690dbd49813341193bc2964d3e18b4d25721ea896a777192afcd47 +S = 844074eeba279c98b763fbff66f7324bdce04b27acca85e4d5abe514605185bad21207b62a427fce1d9ac2b2f0d0260d45160a2a822abac1da0a966836521ae6564f38e996538b4af300de69c4aa0a5721e8c89f20320e4e09ad1f99b6a0ba3fa2b41330b84a890c30272f6312b2cbad7d38336faf92a8c4234a0814ef662f62ca3ebd492f805457613e04e241ad9516c1641296334228cccf24562d69ab45352d30c68dfc7cb7e1159bcb5c0becbdb3ffcecb446d0ea2507ebebb6d9c8d9388d6afbb67c5f35df343ad4c23e0b65be11e0f8e117fa26a6abdcfe215f8b0466d31d6168611b71dbcb999233b50dee5414e54d444c3d3c423dc8c58813a571058 + +SHAAlg = SHA512 +Msg = d0431397e560edbba3e0792f37915fd296e3602cb34a2ef6f5e481dce85c6781330edbc4ca6c9a4264a0321b30735cfac36d8b4f553dc5df2e5cb27f5beef31ca5e9b4ffc478854fcfa265d8f727200a75aadc45c115ee54053af237d1b61a25101bc6d13b4e55edcc2d3becf675540d93e379955e9a505b62c5688ab27d85a3 +S = e08879c12338d9eaa5e8648351ba516941fdb52d6578a0ba0cd88e1637d041ece35bb3a4d6c5e899ca3ecc1b74a92354a70940f0f83ffe25a9afca901feb6ed4dcce64faa100ddf043e514426f4f1e6aa9423247bf1e7ce96158ae8f1eb1961ffae1d232c13504e99e09f0da7513a2620e88d05acdfbb9644748df12475d01af7a17f35a6971d4e401f62a903018f29c1b76fb8bf7166e19d774d318c67c834c4e8b0cc0b4d36a54586169f43ddb1f269e62be363222bc1a1d1fe21b488afd539b5f8e87ded67979e6b1f18f8e542587aeead07c91b435c933e5acd33ecbc7da8b2094c50f512fa9ade68c3c40ec9649b0a92c720760e5afb7b6fd94d6c53ace + +SHAAlg = SHA512 +Msg = 293bf13d84db45e8cc67b4a0d6f259213e365323adcd232f58a555b0c9ae634de2d5d6761f36ae3d1b8d046856eeeec435b7a3bc4ac2df29d6df896c8c8194bb98b723b8e05ef0488a96eea2be722da6adf4fe71d238592e77ef7b2e7c0fd33c54c91f2a50bcd3b02068ba7797e5df70aed4ae6acc9757e444bd731f1fc0ea78 +S = c10f115b8c930964d893552075c50f9c606800f446d4d80226ffb15025e7a0ed9cd329ae7346546647538a1421acd82c0afb345cc59099f30b94f812d5f5d45bc870d6a7a50533dbc97e4488fed26f3061a654559b18a7bafb3b90170020c0967fa5a11d1359b561c0edd562fbeddce8f697abd19cd3f58b9b0a3f5fc131bb523ac2149ce95f3c5ffc2cda3c988069d2675d1ffec29973d5bd7b61c64dcc17367e50afd555ea78738b75491eec3e1f0b78fa323e06bb9518742602f341856d3575f18ce35f4e4298e124e4537a3de4203704be90dcfb841225cd5be4ac694c144e238345c30a3ca23accb7114ffc0bb89a146bf192a6d78b3a324c8a418b7af9 + +SHAAlg = SHA512 +Msg = 91a914707b2c0e33585e56042b50889b1f8ad9e8b2a15b49190c7d00e033d1e4d2c91356185c6677a52ae099d13749f3439c20981522dfaa330f81ca044040d44d78a3c952f8b80d3e509ed3c47447d507127c48b723220f7dc1bb2f9a383083cb5fcdb16f298d5ceb77989b4e300aaa3194f6e0e2cdabe1c1c73515e9422759 +S = 77d1c6cf1286cf21350e3d331e8fa58addcf796dc680af1a0d4260a3b4df256bf04870a852129fb4a950c732da2f7bb06b414d52c7c442b3af8eb0a76c3b701efa66d57b2f047de994ee209dffcc6291587f0de4f695da12300d5f74d0dae002114e0be8babe21dbb031ea3c2aabe922fc822bcc973ea1c4b0dc0e4f85f83db4d02cddd238e68785e8a31db70b83e1adfe291eb63d934ec9c7b93d0b369a59215d2421aab831bfd3b9a6b1c518853492d87c577290c446b5a942bd4d2bc76d7e8450eecb0debb5073838a0fd521854cc1127d5ea514938b499d2289c1e891e1cf0bb466e11e310324a566c51b75072323403dfc5eb5bfd0db538fc450ecbc925 + +SHAAlg = SHA512 +Msg = 76ee8ec93353c62749c49c66846ce128cf177cc3f9e85494b94e7196f0345e322f78d159799f8dd14ac788ccd7dc49bf980f957104844a539c4b8b0f2a921d634b1911302be6a4ce903963a31ac293f4c912cffabf50f339472d390d1719a286d2b89875d18fd1c723047612d285856e68077486b2b217efc4dac3b83d32b442 +S = 2689f68d42cbde98b3627fe809380598fb1aea001366c9adf82e7349515ae1889a85d16e2ddfcc51d83699fa2b6da580c1c5f32a53208dc0835ae745dd8add5238a4842413a107bd4a39bfaf546b3c994cf50e29add6db3b5138c34fc7894b910b00a5d5ec5c87db8af03e22997d515d1430ce3b47543a24ad957e192c996bb0bd388fd65823f0cbf40d46776ed647989e7a5d6a6ce4d433054d3c6873aa04a4bd2fc20a92d68b90e412e44c44914a76fd12664034c207622107c51e92987e51ffd381605b246f016fb78452d7bdd73891172d3f88ef2e2da253a5800b469091d9a43a947e85c8da2855630630efa63b418f5345623e3c258f2e93db3d094a52 + +SHAAlg = SHA512 +Msg = d9eb32d99c9e6a8001a30107c29ba5bb0bd6f31189192f8cc59e39e1b05dbc5a7e8aa978b85fe4dc8d1b3d676a4ba1a1ca4891574e01d48910fa69833595c049c1912a38afd08deb425d5c5c96adc64b7a252ee482dddc9c57a4f25c5244a1e149079c63a979cd74c570482c6e4a7d83c476b1fe4b36af8e42a2bab530f1c7ea +S = d2b2e8701e9268f050fedd0040ed468d3e5a5a5e20de157608aa70dc7059af94a6dba349545d3b9c65e64e74c555cbc0ec462d496cadf45c4ed240a2a1d6cd021837ee857ceb0e5aa0c52bbd9cd70a495a597a45e5630cae62b6957ee7f95f772fb8821fe781f7a3ec7a41f7db5caaecdad9af8ab3c9b058291d6b9c98d50b2c477afe7baf769c424f60e39a62c4d63a8dd99b7017ae267191561c5e2955764c8932ed9b4b75924d6ea6f8b62272eaefbe0bbccb59a43511abe49e2ab486b7f6171f0db8a8770cfda0d2339be9e78cb741c2dd0de3d6c272c1a61fd5de72fcd8618ed984d891ee5d3002ebcef8af237af441484aa229cfea3ae2d53f22277ce4 diff --git a/test/vectors/rsa_vectors/RSA2048-PSS_186-2.rsp b/test/vectors/rsa_vectors/RSA2048-PSS_186-2.rsp new file mode 100644 index 000000000..276d6c29a --- /dev/null +++ b/test/vectors/rsa_vectors/RSA2048-PSS_186-2.rsp @@ -0,0 +1,130 @@ +# CAVS 11.4 +# "SigGen PKCS#1 RSASSA-PSS" information +# Mod sizes selected: 2048 +# SHA Algorithm selected: SHA256 SHA384 SHA512 +# Salt len: 20 + +[mod = 2048] + +n = d95b71c9dfee453ba1b1a7de2c1f0b0a67579ee91d1d3ad97e481829b86edac750c48e12a8cdb026c82f273dafc222009f0db3b08b2db10a69c4b2dddaaeceac1b0c862682eef294e579f55aab871bc0a7eeabc923c9e80dddc22ec0a27002aee6a5ba66397f412bbaf5fb4eaf66a1a0f82eaf6827198caf49b347258b1283e8cbb10da2837f6ecc3490c728fe927f44455a6f194f3776bf79151d9ad7e2daf770b37d12627cc0c5fb62484f46258d9ce2c11b26256d09cb412f8d8f8f1fe91bb94ac27de6d26a83a8439e51b35dbee46b3b8ff991d667bb53eeee85ff1652c8981f141d47c8205791cef5b32d718ddc082ed0dd542826416b2271064ef437a9 +e = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = cd74ae6152d5fe5ce3d9073c921e861a24208f0c68477f49c825338e1ef877c0c977c1d2ffcb20e964db6fbedcccce449ec8538c8bfffce5bdece84762dac7f2cba69052c0c67226178a0ce185a2e050b3e1057e94411dd5f726878558e7d62afc8a81a93dcfdb5a2271466d32a8a4868af20fab2e13ca609d5a7710a8278aaf +S = 6375755eff8d48afb3263b3b96988a2afd181ba061793ea009783bb1599d03944d987620a2668ac9714d6f2a21f7e5200d63923f42cb32e63301c8de58c70a203910640da967d03f4f6292f6cb199759822790c0c5bcfb1d4faa59465c3db2ea1fffd5e543335632b74745bf1e18473c0a8b4a89def6b27edf0d7d735ee13f887041c9d8a91e62186a9a1e0b1afb48e577f6887ca61b7c1bb26b4a8e2cc464a9af03444b3da5bed08b73f1262bd3d61f4c78f49fac6a3bfc9e8548b4bbe64cce6a6090fc480efd1f36c18c10bc09be9d957a79f707a10577a1bf6e9e2d4849693fa58d8877c8f1e55181955d6c2b94b1d6d9401b5fb80cc32b358934fec2aedb + +SHAAlg = SHA256 +Msg = d795644e3b6351c656cd2553d61825f54ddf8bcee1fed82a46af6bbce9f3532a6e3462cd5d2882b218f84ce411a2d7ed399cce9abcbac6ffeb51cebb799d477deb60f6c74acc57f21ba33473919d775c000a3d2695b82bad4517057c039b7c4b366248c66a17779045160588bdd0ac4b8971fdfad5c1b03d3a483987edb69c9c +S = 492dfc5eb534335a9d73efd9aa80a9243afafb5c110c243636d221dccde096dab6775565667b9d36b0a39f169ca7315de3bf98cb735e3dba43813e5af26db8904a9df801e138ea17f80e9221bed19dcddc9639c68ecb606bd2b21f2d40f72a4df36c2a1561c5ecb7e3ea278c0d1cd7cd1274270ee729b664ebbb4ad5103bae4ad003bb7fb0ff22ce80120dd8fcd2846361696e5fd9ee92835654c6cc130e7b9476033b8a83125e8198fd9d617821bf5c21babc252a15046073205aa5291e04298e682f7ce95337e33007b5aa4697b8a3bae937e1b3bc473fa713ccad1d0e90c477e02323a628e11ce84d8c704ee644651c6683ccd32e2bf37f1e5cb897253214 + +SHAAlg = SHA256 +Msg = 5c39a3d2acde3ac1088f17958b4a53d43072d79643736f4415a421a0f471bc055ab9b3f065752cc0879b55ba7f42f75088064da3d0ae16462b0ce9450925c966a692f9ae802611270ed152e1afc43737e1d64c53b32743f57d03456fce0986f5a68c1c13e539117f04fab711031b3b10a2ac7dafd4261fd77151dd272b641c3a +S = 1ae00736924c34ad088be68276ec7fb558b0b51d0c3dfcd1f45917ac998a30290c7a3e51f36a67fa89d93af875181d2ba3d2bd906b5dc6f375a2b3eb569875ce3492f81a397622cb16ee763df9b81d436795180dabd03d506ca464798a10b0704e016c1b5ee3fd0b6f463ffe75553b839e869b3492edf6897c7614eb310fc4def3107716ed0bcfaf6696bb6ecc3e022d419861dc1bedd14287613afc72b5550b047f64f2a35edb24daf8288b7c306f0d38eabefcf1d6cb03f6638adae68c231d1c8cf7f0cb9fcf967e7d79c6d82c499981e2a0dcadb2120b673ab9aedeecc13ac2cf9cbd5c1069dfc2008abf23214bea085004d648e4e6e584401d333d6efb2e + +SHAAlg = SHA256 +Msg = 76dc2643ac24d5e5f7ecc09fa3a4a7fa9cd5016725054b3ccddba0fa9f838ad19a54186661b030d3332c27ef1cf18fd16d63508f6b00fb4b448a5a7147684c3a534acf75900c5f865edd7faf8ba0958ec992fae75f2d52a41e4d191a97927f8e8b0576f8a3fe09066145ef645777603b97ab27f86a56f94e456c057ef8c8ccd6 +S = 948dac52688d4cfa3fbe16109f5a7936fa675302f4a6a28e0c83ed7bd156154f4b5d2adee5c396debf1a3e116d42f926f011519388e0eb24aa2d2b5a49832d3a4e64248a311c6046378547aad27108742c44dd2a29733abe8c5c1c974a23eceddad7943dbfb0b3f076acb73a3d2d8e762f48a365d73362f3ea73ce12022bc255d825e6f2ae02d5cacb7fb028392f4e90729a158c4c2cb87eebca4eef06815786983f138003b45e44894f5cdd74938e583a4cc4b5acd152a2c7bd83829b81cdb110d99b90ebd805e45ebebdabcd38b19f377dbd68a6abbab16aad0afd880dbe15fea023f976ff195f6ffac7f5d714c426547ae36d4efc92d784c078402b620cc5 + +SHAAlg = SHA256 +Msg = c1ba7351ca934ece6aae483e3d0bef48601f789eccd5b125e2d3375646fee9e4f1409c9e82891198d5132485d7eb456899ad2c6ca38ec90f8aa07a86c552815dbc36b55f220877b585ebe85223f55a8e00ee04103555f9f28ba45b2048d6cb014925255a51186a6fa1bdfe6bc9331401bd6c66542b3129140c6740ea7a90b017 +S = d46a087781b8d8fe774b494d0ed3fa9c1214f3b99d03ccb4670dd64e1f62f7cb69bc631292612ebc54d8b49ac4a1926320a22646eb414ebb35c7730d06a717f4556a8b815946d7cb31176a0cd18c54daefc46ce16f358a86f6fe169c189f02fd6060a5220bf9c0b40aeea12bbd49cae1c2fa27029aace605ebf189e1989b903b9674928ab86e0f09e50fc52ea520953a4a4795d3c470be309084a046a84a68c9d3aa776dec263fff920846330121f3ac66d9a718dce182bc414a10dde27ed33bac202d69d49db00c733f55de3d13e0728ee2df948db17a2dfd33bb8d53bae4cb784da6b5a7a8d8b98d5bd153d76bf4f5563e3158b341ae056ddb9f3f5ed01a75 + +SHAAlg = SHA256 +Msg = 25e374513c67ccdf168c87724f4d42877fb276000e51f0ca4a1582bdb63ef9c3a5a94e3d085221a285176269c9bf522a1e3aaa00402a19316ca3f411bb2f2a23ae1676820adcd87fe60a458c02329e595a2ddf3cfba799d616dea2f453a60ab367b152e8e90dd9be61ee97a1a3ae0d5b5b127c7de8cf56016e4cf22d26aa83bb +S = d8b6b2502dea02c115cf2fdb4c6668ccd755935935b61e50a0e3066e37014152062c2a2afeb4bf9a57d9ff6838436d360bce75787a0d357518f3a62eb3300f7338c472eaa6d2314765ba3a78956ccb8c29b4f4c753b82618015c77b4d438db3c548a517db2146832cb511eddc4b51c9a331b3cd1794781b430f843aea510689bb94021d18b8221d83f0966b8e41456cda2a66c8bf53359bcabd77d3ee848d4e473ab2b82a891533d788cceeb0a44b79c727aa419287156ddc29bd054368ef03fb6a5afb08ed8eb52513061d98afc57cbd118e000f1a1142ec3b35063ed504a0a7db21ed639be3bde45f859ae03271878e7aa128a5209e9bd671b98995a50e408 + +SHAAlg = SHA256 +Msg = 5352c606a030159b9d4ad7664188e0411718385d936f1371a68a0317907a6d72f61f3a153434ce20f48b3eac009abd6a5437588678a0e4d20cbe3420a4ab8fefd771604b931530eeb3d4d2abd4acdd0d641e603bfb33d01eefbd45c623dfe60a1fcfa26f66db224c03aafb2b66c527716e55b642c72fc19f760da0d1b21e5c0b +S = 0d9b27ce9e1cdcff6e44df37751845e4840b6304f89dc36e7673fa158146fafa7b5632b4468d60e6400d1511b39b4df0e1f588d09c55d2d7e1038fb31be0a00f41a7361b39df92c0a23da7869f992d1b54c1c3c724b44fec108205a78c3f41a8d350d131bda1b8becf2755cdb2699941322b5d53d878ca02c6675ae15c34c14dfbc5970fc2161924694cf5bc43efa2263f663f58203ffd5f0f0e195defe05e2032dd2f2fd4ec6adde308d3ae621804328c6a243f5676d4fabe00a67414901028cebfaddcddd63a60d45fe6288c9226289679c96f4d74905604c87ff39ad510f1bcc0ae0b5c2e42eae3e44887ac8427359497d21f728b252f05fe5c75589d72c6 + +SHAAlg = SHA256 +Msg = 49be017dace9c5a6144a198dfa07d5b7a0e9f83999c54bca8b3b411c34a3226dab456859e8c86af287ee3712c97ec5f0dc814bf25cb0ebc2192e94a41b732707e388d859f47ad82092093147caa0f1b5b28a8a25f262793183cb26afb7620b417af11928d7e65759be03cdd30456a02fab6c7e7964c23c3e527cbee611591844 +S = 295b17c627b5ac8a86030e75d40c9f1f52cf5abe818c857f314e6f8ba8753c2954ea73e2bd0f019edc98743238b2739913298af3af030d3008fe610189d35dbb9c1c711ed63c64cafa82c7e598d8ee96880eed116e1134aae39bf0832a1d2142076d7e9a9af890dc6e3a31f142ec2846245eafb088dab9aeef0808502ac13b40da1d8360004eb4bba96beb95b3030ca160d181cde78c80c998c2667539b4a0b537980bc433868d8b19dc79bb961aa9e9685705ac5d9ec54eb231faff14765488e6acb7afaa068bb6db3bd1e134c507a5af29c32e70895f4e61279a9fafb822b80f07204f9e4d9b2510a13531968e6292b422eb505214641dbaeb7c265f8decda + +SHAAlg = SHA256 +Msg = ab5470830777a1634945bad211eefa9f41deeeb75e92ef9c39aaec12ce406a1c6c79c8261659c8842adc4b1b40425c5e55aa707d29e2ecd8e57ee8ba01273344653697a7ce825e97747514fcea668fea45222dd380cc5dfb1fe8612d13b252addeb4646df7976b83703a9edbd6019b295970ac222cf849ec2f10ded3cc88ce3d +S = 4c1fb3bc9737deac2e880e163d42d83f551de6780a0b228b33c59876b981e99bddcaea9ff8ba0852f71dec0f24c7e84f007e08ca9dd98cfa42eb59926bd2a5557e44d0546a3619e5f668b456079ce40ad0767ac21b31caa0765ebf53097df61d49224356f671234455a0b20f01cd9bc8d9a25fcd5a8dd51c87a631590884561ec12b58c241aba15a4a45d3b2e9e690aaa6eb6ddfb904bed258aaf454c856ad67a82d953ec4b20c06a70f4b173467518ceb859eddf822388eaac9af403c7b7b9d1ed786a8fada57aff043fad16359eb2894ca5386709d7b97cc692ccadf1d3f3fb04d6f8c09b3f427813bb6ba6ea228bc45fb13d780eec77bee66b300ffdd0b34 + +SHAAlg = SHA256 +Msg = bd58688188f4dc8f6583fa0ca4e3bd5d244b0b1d22d42dc34f38837e25d976647a05adcc567884f80222baf8612b69ca83353cc678e1dc3a6294ab51ce7bb53945cce4841d4f73cf951ea4a222a9b69803fc11c01b45c5420090324650d608114436737187828f5c48fd22d48e638a0dcb2af4d2b508cf2551b5812650f25836 +S = a83813c8120c53d79b981f8afbe3e07e6230d595c77c2ec1bdb67a06b061e92d4b4c5b69fef3beb3f1f3642f59ad73702d6d331bdcf55b751830aa94d454bd8a9c7b3bb717a59394f550bf70cd1076af6f27ab6c4b70c2a034cd87c5551406701cffdcd9c60d0a2e390c5f4b7137213ac19241444e91319bae817d27201cf083a9c0fdded3ae10b3423d964bd0a3e250724d19ff3dcaca208eb60a9ca3bcfd38aaef01116b9c4895af8bc907d024acd46f04078dbe5573807eae98b973aba8b56df8668452fdf7375dd27f58a9e6429a0f2a01faa54f95ff16bfdaee4291715ef121dc594b83289c3a99c67575c7c042a7771f87c3e7d8af8a0b46697dd28af6 + +SHAAlg = SHA384 +Msg = 4d41e81fe7729b79c1703ef84bfc5e842050213c31b188b02044f151ea22e026c9aefec05927626ff97910b67459bffde190e086c797dba285659c25f1854e17406b66ac2608e4763d9cd5daabcc1dc100f4738f5dbead59dbf43e532a92fd87792028cd963ea8f75781964c387dff384523e4413b4e853dea98e0c2dd7274df +S = b43d87deefa7df127a717f4065f831c58cd84bf78c916ba52ed32769abd541df52233b8583507c539b1d51e0437ab1a41e17fc1599b92aabdb5b040dc79027c60c9cc3ed3de36aeea28f20360635be5bf654d6c1b7fe6da77d0c45b9ea2802ad22eba182cbed95d33da7f78ac844f4891cebc0396caa2f8daaf55254fdafe98b5fe6c4dd3967d23ea99497060820e108e818cd0aa94e65770bde892c62233b96d87fe545162d6ba077f110274bddacb2a7cbf17d437bfe004b34c3ea24fb46e5ed9cce4de96b0694efd73832ec76e19e5a25c49c5843393ce6b919ea35e4d264e0a0855f518a63c008c183798ca612cd8f75688a09210413e0a23cafcf2d4158 + +SHAAlg = SHA384 +Msg = 6d278ccf218f0495867b3471f276c476fa51990d38cfb1454ca24f6a219659d9720dfe128cab9b0f5552e0d58d512f4854d84443ecb01be8c1280e35a6533fd8627035456baaca05f10244511e89c2df9dd2dafc59a780db87fb292de62031f1453a7a8e47f4571f6371a80e2e8646e4dd26a15f051da7c6a601e8796866f8cc +S = 910d0235a95aebf84252fbc0d8321bc5d07239f6259b4dd0821028394049a9b946f8bd1d78a4fd4c93f3e19c0c8d722767464eb4a95786ec7492399f767794b194ea421c0a59cb7875b9abd54c23a541b4f5466935b7e62f4a788d35d3c36bbe5ec61fd0364642d5bb607d1d587ef8036cee836c5c3f876b71364cf2c082ee7e34ce804425ac7ac86f287136e3eb54b46bc57755f634d7caff04143545c19217201eebcf6fdc004951253c1f42140dd83c44987b99c09bdfa9efe39665553d218ebb87ed6d4e83e073007e85ff9266c480d2b5695cc0bd92245a8ac59e671158f6d9270c2dafbc0bc51c5483fea06f77236a8eb6cada5364943261e4a4d0a539 + +SHAAlg = SHA384 +Msg = cb5f997fbe1aed2a00c6ce19bd36d06046c0029f4f9dc5835a92de8f73d0c91c1e1a509e8e255d2a17440d35e645059ff09509f028abcbe1f5a4001ee32bb94a999cf1430b6962a8f0bc9e99775e5abe35d70d8b62d7bac246d40939eef59ddd232fa2f79daea5ae7376a9cdd64a77c7ffcc35f966e73a2e356a2168fcf51cde +S = 33e5d7f83baf70fb410534975394abe822d5f2aabf7e6d55adb374dc674d71bca1323be54f30d2d8e8387a3efdebf787c88b16eb6774de80cad38f5ed7e56585f41132606e0a8cb1775bc2322f13a41fdfdfd2a8d261ca0fae811ced9c11998321fc24b400b689c2d9370951e831ccc068f0cc00006711b9f1e533a3e27c4561ee5012db116a91756d21abeddf3f08bde5fdcb44f2de21bf59edfa3c78a4408b1bc55d9acb6ed3210bb15d37bbbaf64dd2781590b9d61ace524de49d0150ed0f24f88fd0b6693912257964ac29f16c8f73230982ef0d4ce3c5af725947554b024ba59b85b1eedc325abfa9f4feea5a45829f9b24a2f0d1126f4c31a81d674fb6 + +SHAAlg = SHA384 +Msg = a36e47fe449ebfc5a88fd403b06c9dc7435056ada14f56fff4b5412029927f2bfd76edd75b79d29ee57e141ed1b9acbff66f579626fd8e89bf1cb9b47d63a00c920e2242f9fd29eb0700dddd435118dc77621a7607d97f2b82d96ed1778412378abe4e09c633acf3359b9709ae3dcb67efb10914eceb0f2d6675c73fbefcbff4 +S = 20a3de3204b2ce250840771b21fa19cf6d42a974723ce98f9efd9e8b3ec2266a85bc9f015ceca8f78b342c1ea978c384db98e54e17bb3b6dc58919c7634e5398f1b56fa97e423bf083f8fa419d02cc16e3011eda9d81e77be7bfebbce8405f13f120432d4fe2161a08b9cf7efe60f927e15035c9d6c5d7bea5edd3e61f8aafd8e2af58a9e127158e45e5837c366274a7594724ac7b7b9c319d3eb5226d4c3ddf1723efe5dec4968b08dd6cc497b1619fca17090a8151786bbe0aba58234c5495bdec2b0fb53aa84a464dbe3954529e071b151e15499d052ef8457b928f1d3106c23d1e68aa6e791bfa0d5d57b50567e1138b894b1516e423e95a70bf306a5d66 + +SHAAlg = SHA384 +Msg = 22d73805805630fb416d20d4fca67419ab660ff45cd19a3729e81b9f69f4c95b28281fc8d5822f7f3bf23991b3be7c1197254cd3f943657495347f9a057c227d34a6bca7152cf1f8959732eccee791217d35d313b697c72ad644d7f8baf9ddbb2e9b382aa81d1e6e37a4336eb6e95b4f45dfcd3bfa976a62d3604c3fef32a11d +S = 1cf38eb425aa5f150e1d13810fa3143ec0116a9b30f65c6ac3f1c0ede44d26f232d1468008a0b486746d506a5e8d5a9b46bfacf4eb4d37c60a33044208c3964fd60f6ada1915ac35a15b5e03a5450483eb98b6a7459edee58d4cec6d4cd30ec0da936aa0a8c1696c1dc793e99492029c872012868cc7b835cfa9b776edc0607ca5a6cdd8c391839508f49d7a23223d82d4a1c7f90eaaf3cc5626efd7ef254eabd894d44b889fb676c173ba34aaaf243799a000201d8ec203665034c83e8c6572aefc58a4823e1d321fd9ad2d7293e5807cceea794ec75656bab33221dc125ad0524461efd8a5ed26732a0062c915b5390b9b1d0bc30a280399da8478b8f2bd4a + +SHAAlg = SHA384 +Msg = 1d1693d416b172670df94ef346f6a2592f2977ce3915d780e7fe857c24f1ebcfda0454ebc0df5b4d747ba35dc92ac99662d897e680907b58184237f029c3d9d64c15eeb88de9f36979620cce781cf9fa5d6d45983ceac0897b2d30cf2cd644aa9ad0c90022d620024535f00dfbd318ce4970e8aa152c905d3a49d8e1d8331291 +S = 3c5a2390cb0eaae61a97647ff3e34b9e103d9d805f68b6da0dfae2c0e4ca8466b29676e09c6562f5667e69cd2f4a603665b6712ddca24e24593cde600e9253433b31cf10ac43540c121aed7635637eb101c4d5d189aacf71ebf4d4e80abc21d90aef2a6c7e0c3eacd45c65c075abfb77ccdf3b488712e1b39e97364573e0691818522d54a27c9f8e7a1d06b1e6e78e1dee7c38cf4facaf150f35cc23dbb904545295a4a181c4f9be247d32e90e48716f1a18c97181b779720453087be7c5b655bbf4aeb083f7065565c4509597fc1520b1ef964085417f5d2fa177ee1cfb8296dc2ef9e0f9b075a05078b51430f5c3236f7f8cec722ac7c1932b35e03a6ce6f3 + +SHAAlg = SHA384 +Msg = ba5aa7679f399537a41298c478608c8a7d92798686ba6f90e089b4eb8f7b221bd94fcaf609baddfe6d5ccdeea1f3af930fcfe4ddb786f8362ce8ca12df35edc8a08e4fa062aa182d3fcad5ddbcefd6ce4d4ad4e31cf4d81806df5712e60da2fb17ff7e8c34710e6b2244fab851bccae23eeb93c03d6dd6dd7556a5132c69075b +S = 37b19f66f464a7eb5a689cdae1b5568cbfa16213c6a102b4b7fe548d5b1d120e6286f26eaf3d65cacfcdbd39cbb4307d9b9e91e2917acbb1454efc0e85b590fa33a6a66a4b2e6c591a63c9566906c95d18d284520484b2ea5839707c72ab6ab395e25a741bf43627a863a6ec90208077acb4a27b25f3745268a148fdfa96d75880a16524180c342d9998931d0620a2da768d36f62909c81352be4f906d55384cc19a6fd94ed0a3806f5a6973e1278a486d14f87a6df6a5c303abd4f34120cd0718304c0bf7756a314024313fe7f84491a06cf893805c8a06ded958b29e6dddf13c8b8b2a95fa0d0f883512833469a8be62395b011241c34b3d196c7523780319 + +SHAAlg = SHA384 +Msg = 1b82fafa767b2f3a51569c3fa37c1163eebb3d6b71a17e0c9e28f8aece99e56f34aa2b6b0fe9343b245efabb6c6c61100af9caea7fcfe5072141c6f9ca113c28cd915e1a2e0966f21259c33774df69d71a9b6c6cc791cdbdb36f948838701e7fce80b99039a16e69018d1e3c239dd1bf06e94a78b0b1df373afc87e4817e357a +S = 36cd8663869a5d0625765a3fa7f2c68d06c52b1b6328b184e9e417bb4ad0bd381112f9b59d3910dc08906e6ceaa6522bcb58daf59d4e07c43dc0a7baecb87ece3e7898305f9feb4bca107c0387709f7fb9545a6daaec893895bd127c128f9449ab508bfb3ce78cc007fabf11d9c4fc077ca5e063f306cdc0d229f686ee07e3c45137987bfb78d2d62c92238b9f3c60cfe16ddddd850e9295e4dfa812bd47101b9f3b301c27b5ef15554501fd61f8e77ef2891352539d4d4b2134510c2eb09bec2560c1da1f420baa699bb7b35de6fc7aba5539d7438c6bb2c8aae8dd6d901f4e86654356817e3cd9ffef2cc25535d97f283fdc15741e88befb543b1ba90280bf + +SHAAlg = SHA384 +Msg = 59afddae5c62cc09151f22a0c3f4478b344892159663bc638b3195567b42f5b12e16f67f9a9860aff9e865021f5d8f270bcbf624bc01b6f74696a07d24e63094d057bf7c91e1fa8494cd93e23fbc37e2c2ecbf43efb7aadd4b5ccb8865023f3a66faa26fea4582ce0e561409ca1826058233553bd78c805ec30a7d3de5a00aec +S = 2353a870521c1c22d4f5da58f36fc33488e48408f1624be3f36f536ca77ab792351f904611fbcf0d8d39d2fa7d166b46c9c199c24c7235cb74e9974f4940534e2d4e7d95a1a51924089e788a631cdcd170c82f11f4dc155f64214b4a8e76b5ea313f0c610a52d27e139a69bc4999564186bd47e6e792e8437103ee28587f9f944fb706b9c909dec4d63ae66b3ed9181a5050eb00cab06576b96d4943a251fab43c719bf75778ffc3922fa15709cad2cdca2cee58237c602a57cac143eac73c264d1ce07ed88219400a8e02346e0291c2f3c1fc1b96ae3a173dbe72d8e2d3bad49bfe6a454400d96d009af06a279c56bfd2a71d341912f97bb0d4c2a06b17518f + +SHAAlg = SHA384 +Msg = ad5525d02af9254a8ca00950a1312da3b31959b401eddd667150e0147f18f5d679acef00eeb0f7ec64e5dbfa494aa9d42c887df72d8c976fb276b0e15cb28ecf3a64d7183c0a23beea5d54ec55772a384e3b1225d7f23fecd732fc7c120441bf5745841ffb4dd14987cf1d30ae00d85582fcc147e765fe65474d6ceb8756342d +S = 9b15d2b10ac92741cfb43f9c5d0275f9052becbea856e6a3927ee7a813d055581bf5fe05776610f9da1b78dd7e686a237498672fadbb989dc671c9449c919a850a0543e1084284ee277dd5a44074fd7fb588125b259fa67a04060d7d7ed9469ac11a54d36927c52fdc21d3a6eb543eb3811a13c43f77fd96eae6f27e7199115273eb47723d19e233cec89f3d02dafda48f42ba2ea293e2094740f41607c29df42fa46dd7cc727ceafbb25a8542430cdb52ef62593414d818cc2983565d1cf4727d68136d42018b8a70597d993fc43e6bfd888422d9490fcb380507f22fdcde96cf8fedd88791cb99d3dd297fb9e7c0db37e87b7600324b900531398d584ef994 + +SHAAlg = SHA512 +Msg = 252433d4b72a33e1aa444aa9680454e9cdab208637ec2173dcf366d561a6cc65a82b7316e9aa6ef90454bf5d15a4823a49e468d0f1f4678bd547b02acb2ee22088597d3ab59a998346edd86507b6991077496e20daafd1798aa812768eec94446db6398844831b4817177d0865c20133ffe11bbd1aa7c507a21e7403d1684b98 +S = 2cdb0d5ea5f0aad1f7af8108bff56eec5c0dcd0522c5dc6ae4c6e0f66821cdf698ccfeace65fd6e47f95febd879e580e5ee648972cc265f9a117fc720db4f2545a432eae24a367b0aaa70a011ac8fdec94a95c3cd48cfa7102de8dc26c877e974688b3919de6cf06e27028995ac85da88cb3851a5761e17f215e5c593e13e481088c7d747ecb34d3ce61a5b56eb2a65be5363363294eb365f83c4c709644d857e2ccb14a5851724420fc81178144ef3f9e1138b5750eb7196eba3319d799c3494a7e399115a62b1ca4f1d5da079b495d35fd651a1de78d54000b06bdd3122d7404013f2ed8fdf8a7d012f9812b8e4c2e0b24192d5f899d70a3cc5c7e08c81be7 + +SHAAlg = SHA512 +Msg = bf6a854e58f80f5980ec31326eec0e46735a8fa7e978fa5166d0c7b135d3af6806c0054ce4c749af686ffbe52c35ad0083755cde678e0066b342620e935b2ea03894493fd0b664a5b502d2aee4cf961ab274c18eba68fbdd1aa85f86df598c7ebdaff82f040d88c0cf6e5e977e03f31c671d65c0c94e123f01cb65210115f087 +S = 1e5738127c9077e16baed97b37a292695a9631652d761d42b3452e420ebc86a11aa59494490156f185f1d09aea30b1c9f7a19ee067367e02b0198cb28cf79ceac20c8f667ac0bf99359d96d3a4d2d45e8b725d0f8baefd940301e7aad4202038b9f71cfddfb018834e8ba6df196ed4b32f01082caabaa10912be5dfb1d05e7989fbca312f05c3249942d9d4904fef8481d994178c1203db4dcf81d346fbdf0516c1f2e45ea53ddea0b65ba622914ceb0c529d0b1118d28c91cf8dac3874f28a71a4c5ec5fba27802d6332623924e3e442d1a10205c3e415b21c0e02657b44706f83ae117cc2c3c53312472141d4cd09eef750dd687083c8bb6cebcd0ca3274d4 + +SHAAlg = SHA512 +Msg = 877cd68ad3bde42bce7115edcaf469a0eb2844e4db60c433c07c52226b5577e3d25bf10fc17c07a2cc48194888537bd7fbdb841c50abe1dacf3f2f100d29ca7b60b4df5c96c6c97be70b9a6c274ff711412c2a60e0e672666f939d8c447fd91a18cec8f9bb63d2bd0501bfe310b08556a4635e38f3d71ee087bec41f781d4fc8 +S = 99d68503ef2eb844e34bdc746fffced940471c9f9e87feef2d87b794f1162e1dcdd3bf0b49696e9ad83f4d85432d7861b26b83109970f6f27b89070c81e8a977dde58dfc9c23deef5ee19f91881cf5ca70ffda019b71fa9b320fe24d0c0b3bf1c79167f4aa957dc43397c2c510f0af8965a4be6b1e30a146eb4fa495a0a6d8a8466cec41c18ea88400eb9dcb99c72d6f4190f6ee8252f812e9dbf20c6511a1b24b976585716e2659d4bdef2c38ce5cab02d5f21b71d393ae52286f6062a4fddebf345d9551a04ae30ec7f74395257a2c8881d7ea190c9c79d9f46fea0441d868da842dcfda8497952bfa91ebfb8e9c6d2a3ed9c1b55b7eb67114c387c80d2b31 + +SHAAlg = SHA512 +Msg = 987fd568db29bf302e706aed05078ffc936793c9eb67c0fb650cd6eb43a2c25b940bad65595838b1e79606eb8cea7c7475e1c458cf0118812da43d2a2a064d964f9cba0137a790d7f00afa24a558084b7a32affcb8d012602addff96c788bd6390d80525bc3f4e0913734e7e9879bdea6a025c9becfb3600246025196151992c +S = 65dae57f88c3605a5eda9358ce0d766970bd747693b8cd6ee86fce07db4b982e25de0c4d59b1d3327038f3558ec33be650df11319f8b153f01f4063e01a8caa55f9635db8ce95885cec4f202864bf471f6d66517821f1d7a1256808be5074d258688dc1bb160f89036ea77cffc1549cd9245d78f0eb840590c1ef3e82d7fd328a4c005a4070d1bf9050dbcff51e69b885ce9782b2b5d27a6634fb707b60d4aca7f7df952604756bbb8b9753770ab75999c67b535c8c0ec3aff6ef5e9c77d9bf23aaf6708643cf9b29e061ea2ccc1474d7ba49733e400be216362d9e74d7ce4f7d329552630b27bd947365488f8c0e5a8195f03e071fd8951e823ac2e1eb186ce + +SHAAlg = SHA512 +Msg = 1d308f1e20fafcb7f4e06084e15e5a76a38cb4066342f076e67f2359050c07555d5c4b2847b72de90b984b905053b6b9d7fa49a5698239820e22ecec80fc0fb3dfffe3dfa60cd7f1de575c6c9211f59482448d761bfe0e28a7b12f52c2da8eed0de1fe4b26402258d7e83b1f8de03e900c302a8062fd98f119f59394b1eeab8c +S = c543449a58087451d6910484c729a986e54d9b90c1c87aa52c60edf1e02e597519c25a8fd0ffd234c6d01baf1ac6d38c5a177d8812d25a084892de0a4fb6edaf20cc27796795b5a6288522b7c1b3c420856bf1c4ebc31c29d87ca9d19c548e6932e3f13454c2289df9512f1e15c9ba0c00e49fa0478d4c98cf0b881bcdd13e6cb700bee348b5f6441891cc7b54c32efceb4c3b80c138cf7649c9a97448043d2cbd0af5837bf30ffcc5471ff2631ee7c495aa16e91957ec0566974cf8691619c9ed4a6c573e260b05c3ff359ccda7d0e7522d6f9488bce2f39a7d3b50cc7055df74af9fc3769391c4bcb1ed54d4bd3ae92d0d7513e83e6ad6871fe95fd6fac1ba + +SHAAlg = SHA512 +Msg = 03c33c527af80fbfc1b74fcd773b1aaa6041062a4f611ebd499d289fe73b2a4efcd02c41789e3ed78c1fbd8e0fe2d37521963de40e65516a75833f07a906979b57f80b9f69aa77132b4c1eb7acbb367e689aa84023a411af18400c8c5356b31b5c6263d415c7c05be565f9b2166d4eae7c74cfa758c766747bff1796afd587b4 +S = 171024e69476d7f9445244d4f0e789e6e8f11d44d703d670ca5fcf0a1a498b4201aa72a7dbf85cbd9f523e6b9c3d634327ca851191c8172c98ea92cba2682a74a230ec72b05dfdcda48b54f121f3b0b9611c34284b9e57abbe7a95bb3946c8c42636b395cea29543e3dbc3a0b7d02983f215deb5cd7a4c83e8c95a88e77e5edf3424a77edae326fc737746f3e440855ddebc801e97bd0fa411c8b04ef81b028931af8991e2a533c2c2450c97ada61ceafba0d5079d8d73f6af47d4a9f45174475f3803f79c26818e7a9bc40a1cde207701a2955422c032d63a0fee3cf92fc5736a4aa84122aa5b53dd38ff0d34c9d6a052ab0aa8ef7777a25d6079c66bea4bd8 + +SHAAlg = SHA512 +Msg = d2f68f29e01c74b5c50a0c01e1f7c7913725ea5f66092922dcac77d046511d624a5809d77962697b7fb679699de4994f5aa8a37175107bf11de1e84d6438a229f26dac4ff63ce3f46327d83d5816db01df4158d1db4f67353cbf9e397588292830fc1d9840f20aa6d724d083f9d6b33030b9b185820e1278a00e429c608adce8 +S = 77068703724d23a6e7ad108c56ff1b0d1184491b1c5d65fbce5906dbf812271bdf187587fd933047f656aecc8d3e713518326bfa413bd6a23751b3771aef9b155419efe0e133db3e50b5d62d9c7723c990ae235113974c6408499afc2a4692bf2cc4bc10dff5a67c38fed7c8e02ac5e5228d23fa8d78d631ff57dc5fac1b442c9bbbdea2c0c63cac1da635914dfd45e745ff684c3f7a2345fae7d91ba0453c359a9dae487ba056587b493741e5f758aa76a471c78474ffc443d9a59bd3fa778c59d3c8c58924b96f9bf1364cbcad7b595029a77ee89e7004f86eb41beeffbad64d06e1d023cb0f740e44f227f821541a5462b16910fb4fa53c05498a5bc677f5 + +SHAAlg = SHA512 +Msg = 26eefc54afa4243b221b93b0b8b3f9393731d6dfce118426401e7743453fc48a2d94e026c6c1aa0c808aac32cfa19efbd1bb2cf631e9fac94b26e468902c8a8b2c8d0c5ee7fe127a49f610140278c874892c10a902b5d57c653f60a2dd57d8366e000866db03636cc78645c01ae07c8ba6ac075f0b1c1d26d7917259f268b573 +S = 1aa122bb4747f50090e501d3c3e7954fc220b6d7343418cc0dbbb17ae925db3268a601ecee6ccd8e5028bb43964b845c74f5052fbe77ff6358d43db5233adf1f2c9bad4fcf25d11c69393f8e1a2343af1ad4c48fcdb366dce7baa629cda62865a5287922da71bfc11cadc79c2f027d0612d6c02f571634b7bc638b4179a6aa1ea7d990d31b355f326e0cf53e54b023ba27e2e8eb1e941039288e08e01407a37acd6fe7329e8e70dcefc5e330525e627d1d078d2d5a1ca1a0a005951d1fc9c982beca32050b356714e79d7be362bf22b82e001ab53d3ef766a176f70291c8305bb30870ff7604c26b85a497bdb4db35624af625c3db8a9cc0c02b91131ab47ef6 + +SHAAlg = SHA512 +Msg = dc3a20dc0e39a9f5eb64181391ba86bcf89cdc086c76e66041a1a986c288f7d56a0a40cb5720abc4fbc0650815013908df7f62e589019d32e75982fb678c1306453396580221a0fb124673ffd5d389bfc89f7166fdcadab1c8a0eef6bcc0e165d57dc98ef784b02397bfe7ffb87a9e681ac5b291ae19c6634c3e957da86b867a +S = 59c64a5ce07258319797e3f3d51ee229ac42fb6f9e1a2ec6083a1579ef6b45efb1f756ca97dc27ba83dd9403bb178c8fb3689487be40457fa092bdd8a21cdd3431b8d6632c3071c0092eb15a7f8c3a170cb6545c2c1b75baf353d12129e95e68db731acf6949aa33db1f1ca8030517c5660211002b0e8a99111873d2c71a2141284e58d32194e8bcf8704d9cac2a61d717d04e180d69c8d0d805ad906bb18395f23be653596783218df30a77fb4a22a03b8dde55b38e269dcfb8d3f543585ca87d0c640fcb4f1006ed085737bb69d7c8de832bb84ca4274a18d9a13288c33cd8b79164b922e84df12a3153f0caadca23c69d6d23c468586db5b502f3164b6d6f + +SHAAlg = SHA512 +Msg = 6c6a3e8cb1c7e98515e8d9fe14f0f35269397dc61a463c19b4f9d95dd8068a05f6a8ee3e5993388364298f6b1bf0b5c6e544e7e98f4905469524f3409d6b3f3d45d904fc1e470e29f8d73e2e6173304d68761ceba7a8fa2f8070eacca645d21bdf66496d09cbb49f5b5baeefee5fae0d7c37e376674b63fdfd4585aafa7e8bc8 +S = ca834ed758d983505108416551114938d0f67e82549937a86c0b3ad9d635f72dd2a4b06f36a14efa661002669d03939493ff967f0ed3be526e705c6d39c0a6b1de2a42016878647795ce48cbe26976a07bdf927b14d068be8d2e15783995e027fbb3d960b19d88506a2d41e63fc2012597c96f81163282fa33bca24a314e91d8549bee8d7263fd8a3c1241b6c58eb3566396e0c006be57021e86ba43648e0ad0208dfff1596d78af89e50352413df9109c924361aede3a846e12a723b381af296824c17e0460c929efe2a93b6f1457a47c6835ab18190984f62f008feb2bb429ed76e647077db21515ad13fc7fb66184cec0dd11d50308cb2606e0769dc33582 diff --git a/test/vectors/rsa_vectors/RSA3072-15_186-2.rsp b/test/vectors/rsa_vectors/RSA3072-15_186-2.rsp new file mode 100644 index 000000000..01e894a37 --- /dev/null +++ b/test/vectors/rsa_vectors/RSA3072-15_186-2.rsp @@ -0,0 +1,129 @@ +# CAVS 11.4 +# "SigGen PKCS#1 Ver 1.5" information +# Mod sizes selected: 3072 +# SHA Algorithm selected: SHA256 SHA384 SHA512 + +[mod = 3072] + +n = c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d +e = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = 5dc2b5a9d8d72492b8a4bd0bc45e2e18ba62b21a4c27355b6871b9e8bcc8f89f7a294a8858fbca69dc44b494d61d12042e6498a8dfb0ccff448a6ae593da06ada79ff36f02e364a312efd1efb3bb9c3ef6a8f5122071fb1bf65f230838bdde9d6c8c7606dc78396be20adac4631e14ef9a9890ff175309d8075aaef9b55bc898 +S = 654ff18089b8778a5f63eb4d743cf5bd0fe68a7575e0043e0007cf0133909eed03ef0472ed3e50d8ed880259aac0a3406314b96ab60ba023576755e56484d550bbb7e02a0fa02e3b6907b6a7dc8e7264cea4e975e1205561796d19611c5c018c3a64bda31e4c8d7839e6da1f57656e44a5428226198b4a52997746a82415e3c8f4ee84d9fa8094149a4e765f525258fab720fecf6dd00550b141029d6e3b9ccdf1bcdbb3622ab97661180f283606377e7dde80c6abb073db6810ee4056d4e0b379394164adef8e22fdb32cb2f42e2bd2031b710c40d2f1e727b9218162468fd773767a9d4821942dd3937a672c03c0beeee7c1400c9e2c204fd86cb862e68e78c18f702e5e10dc9ea1c3833bd209739d47db37036f96ad69380faa26f33e400ff849597c82d3f44b517d04ceab5490436c375409a43fa01624be3a1477a1b33ce984b021c9b3d86f9cb633a7da4e2f7f25467b4daefac4120d59398e4aab6c9ab8a511a853d66c6db91855bc9100017d058387cf68b9e6df390f3ba1a981a231 + +SHAAlg = SHA256 +Msg = 8c89c71dd8a2c2976c21d6ea05dd4dcadb40b31f81a1defd0ccd2cd677e70cee4673c0106aad6180651f2330ae72da365785bd7eedbc6abca09b2ba5a393785fd61bbd36a3035d902505f623909ee765cd1c0f4464f7d8189f6474d6ed28678684aa46f74a4dbeb1f6fcd72b72077a3e842d32daaefa2ff8535390cf1a4fe24b +S = 9973a5c2e9dc3ee2f54a94c8c79c5bffd644cacb9607d392b01c4cb157c0a6b8d94fac5045dc47798a2e9ed5b1a4305618b714e4d98e8ee8c16e3b0c4a2aa799ed715a631ddf71d0ad9299b3b56dd7f07e464c28c96559469137727d4e3388d526342a9a926c50416b5e1cd434d80ba4844b76df434ac487cf32519e76f5a3f21349be54000ddd1e1d9d70d14193c1dd0a6be6e493a941cee49263718571cfc012173549f1e91f6c5e90a78e817d69fd7a154e372fd056ef803b294f89d2fbbfe6f42ea911a53ab8902da65397cfb6a1be35f64ca77787f6cbf64257420b581c2dc93fc41d27fa98836a02b30c64c81f1b11c023dfe7a4e7c5d7a1de278067cd4fb5b5bbbf9e0b3d252b4ea63e265644f07c114ca3106f5d4429c61fabeece4688fdc860dd7af7a7d8c4891403ab07f2d6980788dad2c07da2abc63bd5693200c2ddf9e406fe565222c95ac66e0a4fc7de7ec48efb661533201f24301025693731009b4d8e734ea62f5107d77d98f137cbd1c410f2178df4eb65d42a06cb8000 + +SHAAlg = SHA256 +Msg = 96cf462a9446d4ec4a70af8c1644c5d0f8d5b07cf42437c5b83918087f7205bc351aeca6dc3d7b4b2ebbe4ab849cdd2cf6a3ebd5c426e1bcf51da3c23d78307d24b6e07665b3ea9594c128d904fb1f4ce8d63a37b8f95692d74f83be725a0977abcaaa04f74e27b0c4aa067e600a91191695220a9a469e2da7f74066e6bf9890 +S = 9d739577385c3124ad11db386fd1818657af9a0af06eeb54de027000effb4ca87d64d9cdcfe80f9bc4d370a5ad1ff676437f26d100adf719c807396f93bf3b3511e2191cc042584157f08606a07946cf640f1e0b94022ac3b613b63473ca76d4d3c401be1a1b6aef01a1118f0051c2f79353c5afdb01481c98ba9837c9376f94e72cb0030319160f05cb390576bae902f345ded052466285c0398b2834e2ca854e98aaa3ede2ebc569ae6fb11189925b50d93309a989fe1f93decc3e785faaa750d92aad9501a530cf60beb94c6eccd67509978f333fc26c760fdda487dd1549a71454f996dfd36f9317d758f7d359194f005b4fa4754671f55b879be301400a7756bb07ab8d4fa9b7fa3f289473d6740376a3ca0eca54d5c64a492f7110a201c2de5f89ea9d058d2b38621e43ba96d72770b99835e20eea4a6fcd25bee2c5bd03e31169b924df990cb9d1374b9b87afb798d8703073bf570c091a4e1c43a67efb3b81be5b77866f13ada510aebc827514bcd55efa69b3b580e7af5eede53c34 + +SHAAlg = SHA256 +Msg = 9a126e437b5e015eea141ca1a88020f2d5d6cc2cb3db196faee262ba99fac8bb3b66d5e50a4d60c436b3b08de9a8e4facebf9154d0c2aed124a4ad2189b7eb44ce1f4a9e95871c4d581344baa995976ebe0389282c29052cf39b9cddbbeee28e5d271596a57400a2571a1f506faf04f9ad89f9cd5176e72624ad7716b7057642 +S = 70e10e29b7ea17f9e69b8b8d2dfb1afbbde324fe8e64205e260f362d6708838b17302e7d55d83e3d66b87fa81dfd641fd9d41499a1a1de9615362e1207084464eec60251528c0af12e784de39ea5bb3105c203e432d0efe1cc7f5908cfd7cd5780d6511fdd18de339ef6f46d26fc98db604b0e3a8eec6c276cf07bbc65a738e82eb89cc5468c91462d8e40e1ffed9b165abdf308e8a49a3eae289fbbd2d8d52132a0392f5a01bd046622425c8254010dc0240f76ef1458ef456ae76ca3639f608723993213e9c5bd04f0e750fa9fe534ae97dc3fc2e2541d11ab91b626fc726c85f2b519af38a4b75952b05672b4fc0a9357d31c62908f4df63e87c9121f5866f18657b708caceb9af633a8f517673d5512dc3ea5e3d2917e6517c8853d53eca760433f9cdebf3ba210c866d88d02e02ae21567930ec0656c4814c9262a901429d206478b7e2a1f40a3c159f8dce30c305739a32bdf752facd76716d04bcbac983beaf0897798d669f6fa1bfbd29288765230975572e095aa24459ab956d721f + +SHAAlg = SHA256 +Msg = 06c2f886ff1775dfc39ea830559ecc96ecbb0574ee1bf4bb1cc889690a551950d3c5b1190aa8a988f4877c02f482d74c4638ef95f0e718b7f6d494baceeea89913aef5497e4106f811e9269395a1748a470039d7cf5f783d713ec7cd87e45eaf2f466e1f412ab4b6848c4deb2141ccd957da8a4371cb3dd5f5cdccac1f806219 +S = ad511de3f429bca205b5c616b9a34c87ba106bd887ed5765dfa00e15f0360cc439c6f825716042e8af57ed1617848477d6b1e06ffeea8fb708cf66d2a978b1150a644b2d685712ddd1e92547092a25adfd05a26fcb8197e73de412fd697aaa9fbfb61a13d96ae1fe0e43d3579d6b18358169c9b038b5302ff67e63b067773d9e71d7b433e2066a8a41541ee7c0084ad127c06d6df52b12546bf25d9dada97208af936299b233f899efd96ec7befe62450bf058e83b948654d172e80bbe66ad2a9125e3b4b27078a5c9dbeae5039d1ccd376a99f27eb01c974756c7f7d00a3aa5eaa111cd11fd452771d015be3ff481815547c472d333cf0a1741893ae46ea714f6cad3770ff9b75977110f2bf2e4006e7533d92b631add30a8ae12a2730aae767be0f34bc2c5cca96bcc3c388ea528c8b2814eafc7a422db194de4547f34d41f207559141628ddc5a2d117252f01bff97e5323732cace93b6e0e6edbd6cb804428c7d0787302684adab40dadf647e62b56ae03c6ab4a6babd1863d2c09a7a5d1 + +SHAAlg = SHA256 +Msg = d5b58bd311ca3173ba6ead0effa14ad21f38dc552c8ea4e410777318cd7512a9092fe287c91ec0277d8a2b1b3db5a9e65256660ef8481f7362843edeff4d47ddfcaa72cf0a199a3b61825566046a652447694fee8fde49355ae159f67f79bc8fb60f85d15a2386566e3e7314df284533085add1c7bb6ead3ff760c86d5633a66 +S = baab3a4d1322dc8a11846abb0a360bb8de78fa17b59677543d00de62e661adf86160496fbfba90d7b88439fde23cbeea41d24ca5ee9b3ef39368e03b240e14bbbf13bf1e727fc7ce0b60ef1f05cd2aa4a81e88a046a3ac0400e6f84756aa9016f6b03f1d1ef21e11ca33b5d80e5839c2bf6310863bf5794d4128275e01cdd5388a306ed4d37a5ab84cdd798c0331047ad606518d0f0871e9c45266e4379e6c53d929a025ce8910268c99ce5414d1cd040f69abecdfb12cb4c8cd651d27ebd1b2a3b66ebcd7bdf9fa97e3dae41519d81a23667e302eece8805e0c8a9b0fd6409ffa3b55b9818cc0ad006992844bfa5078375e8711a023d61610836f4cd3ea8bfa6871722e96549864bef6c6d50a62d363e551d9a080a654ded270d6b145b2693c784137903481fec551281d11a835197bc428229c952c844ff80329c7b4469969acfc2c942c39329243173003a38e13dc915cb3a55ad54e79a703417c171a98633d3c463db66b34bb96f7565d7cc20893e7037921f80ebb58856c8d23b3cea7d7 + +SHAAlg = SHA256 +Msg = 4835f68708de7caea9f587dd69125f12daca4f33dbd54353c7709632ec0125023ffaa8714dff42e3754b56ff55509d6e829d75df7c057c4fe1fe5e87e047ebe6f1ce6d60c3d038c7764282490b70753b19e48315c189fabde310d8089293e07ec678ed5d519987e115a1b4c373b910ff076520db92a8e425376fabbceb2d2b52 +S = c0f823fef8053f76b565df98a37ef1cc9d8413bc806cd9d211d7d32e47db3a43605a3a5d933929a08ff3edb26ba67c89ff03ba9be1bbaa14c3eb50ab84e1a5991a7799e125cead5f361381f4b3be0f299f04b08bd1281fc1e0c8a0975d6908e5d5543320f3b7ed27c07b952b7f0d242bd4a377be28d27e3bc45829915792db51f83b11f5b27f12290d399e86c23dde510d473437368825a4b0c38e6b118e482de54d7147f6be4f1daf8a9b51dde4a3d2d07931f7cb5554b14e0212a33d772fed8d07aedbe16ebd9db4162131b07233762fc0ee345d03c928b5e68bec906ddd603b0d1e2caf7a5ec7db4252a92207b6c098174a2c803437ecd7c8005a0844b2e8680e63f41cb1fb65819aa923f7928f0dcabe04350965ce0f8fae9667d11f651a43a35059264fe630b38161a4706cc3d6f4f5db5790810ad5cf7319124b04b3434d782eec544d5de0e8d2726e51d7e17ecc2c9828b207944756d59ee247d19dd8f34771b03ab9e556f068e6486fa59545436c047756704657faef57243abbbc0b + +SHAAlg = SHA256 +Msg = da338b0dd6c48d2862bff80b8a14d13c0b9e558fb5f7829b1390d96e4e0163804f9df2e6244aa9c8a590be1557ef7f7590769380dc91832da023798dfdd447b9f7adaa09d7e2d086cdee19a2dae51b27ed06e86e4d9093d136d8f062c7979cde1c883ddcb7330b4a2403901adc9fab396b77dbc1ce9dba6f1fd7c85774f26ad6 +S = a864050be16b5452f9d45b3dd39fc931f738f9175befd256846a1271f067d83109209afadfb5d82836389555007cddf25e8af7fa5e49f60c0336178550f74559b55fad8160290597fa1d7996bbfb038e107f764ea797d5af7fb1fee34f06a78b25a2e532b9413e011fbfc4552f6d17e2dd4068fccded5125ad3e55ac1c853a8c063010ca1312ac33d3dceb8ef22013ae55c46724f8539fc1bb8fa413d6b993378b6648ba4d52a933712aa3b44ea2ea897f829bc97db63eabf9d7de169b4bc0bc4e67c48035df593bee31b9b047f04d47e5996052dcc78e25bb3f2c7b45e63a05c267ff7671db2a01b145a198326727f0f4b395b1364f54613a32099ee8571d69f715832cea04b36951129f45e3259626b7f54b09fe5520db4e07facd2686f0a8590c6bf6a05e87ab7732e00e161e3d825568f2fcb1cee514f670eb25bbc3a8ec838943e5a1836ec32b2257289b3ab05f99b246ff24cc53c7f5ad8a6021dbee0c36b754b7c005e447f7792872bd602ca1f2c80a9150e54b27d11ddba52ea0a9bd + +SHAAlg = SHA256 +Msg = 0de4f920eb750402796b81a963521d234cd1336c13dc353e552a4d2a33ea44e855b2a2ec2eb817398244197a2665cf4f08e42ee56f7662c983356ffe0f51184d860300dc44c30f0217bb175afe7bb71630ee8096608d573a40d21a7444f08721a8c15919b400b3043fb8c27072fc9f21ced972a87089dd3894e998b4592e580c +S = 44c175e10abf86836af7ddfadc8af5cf446d61176bd251e4f5c2770bee835e6177c6bde9f51f802d4e92558ab3bda8d3ade34a4c9ea3ac439cf5a5fbac53b4c426a9644567fe6698cc1444ae533197358629557b18a077043087b0133091fff1cf8f00813b8224197174557a9c8c0d15dc408cf371d8ed098b3cc9f5c22fd588ae56bfd1862c3f457d2abd2e9ac8436345fd688adf0f6089693bb0d35661a1127b4a65d8099805f64246a1925f4d0dc6b60193ff10740335d77d5d62fb23e0d7d07520af4b12d224098da47f789167297d191db59da3e3adb185774ed83c6d5924eda40bb62335e3313dec8f5ab3c86f85091976747f8dd824b287b56fce16b4e2507baa5138771a0db95022177b1acdf7377ec8ab2dfbd77e218cb546ee3b82eafa18ca04066b503435e891010001a0fbfd8ed9bdb7f771624a957199998ead0ee6eb7c4f37df5e34ecb7d00d308417dc38a6cf9810668070d6bf2c6e797a6a2e9a7579f491bc9c81d98687228ba7368ca67b5a5a4d3e877c34f98c1b5bb05f + +SHAAlg = SHA256 +Msg = 21682959e6957153bd00a1b40719b79059aba326c80eabb6649f0e92026de7763f35551cc191d90cc06cffb2c5b941b2b26428800389b42b53e5fe79228a1c39d5d645d5fea53527dec6d38d29ac1240086615e164d29655620d88d32a2dfb3bed3341aa263b4f4b20f66570b85af2e16498b273744f19dd98fff4c8a3c04e25 +S = 46217e7b3ab09e7faebed8b896fca4c136a2bb2c7986b4b6f6e9c1c08aa5c08d500111066cb225e215420694e93cbd11363e3baa0d6dcede40b494fa781d04f4def3c4ea26b54ea8e34a72d0af6ac11e9638790cd3c00b8feadec25a6a16bd39537c46dbf21b68334427b2782db33a361ec6c4208b09cbc8209d7c22664560cb91b2005bc2185371dc6dd47eed011bd2da60e34dd430fc9f32668227905c09bb1f2bf556a60c831098c9fe083e0086499fe75b92c2f81811d1dff29e8dd0a873fcb69641f33767c0f0eb2a9eeb86bd02ec388e7f0c3fa3759d1a58c2192d4fa99065d1544a35912db42b20ae1f6d52d777754e20dfbf0f060a5bae05c1c119d024c9e512f544ed17e3ee600648ca2e5672c38e3f5a66e50de503a7faf9feba3854be609825c33f6b04af1668d1763470b6932d8fc42e0b0659aeedbd9cb2ac16b5a0b164d02ac0e8ccd17d642677fd223dc7c80b28b329dbf507c6f9375331c5be0fd1bcea43d41e3f9fc5415680367b12abe067820fe45db3f6fb55d36c9c7a + +SHAAlg = SHA384 +Msg = c530d8dbcf28eddd459b5f6f19bc5c929ab639df51fb6d7629d8e138d44e6736691d8768522182a365e191c551666e333c491585aa10cc7fa1bb61430b99b3c65b607381737d2c69c5a98120b9bdb76d4fc773ea065dc4fcfc31630856e63ae4e222248cfbe5f417ae19b8e91b6a3f291d57d8762d895dd5836470ee7fdd0579 +S = 827d9ef38d99808d1f12d98fe4b45e93d2c9df343ec37e21497715043760789a5854950e292b48aa526244faaad5d894eea3695a1a1c777f85f8455c6bd06e39a7c45d49a3ea1d5122cd114a746d15f525e1344d3e4971a3ea395bd650d5fc3b2b42dbc175cfb651b3cdc39bd572ea50839782e0d1a969b0eea7e7366061c338fb6e3eca00a5bca5d794ea005e7e4ee3c8e90d1df15feba8ddfe20a302995d41c022f8b257e99df2edab7d0f9c01bf9139a18207063a837a79bd4485dd9169b38a218c202d1f19f93b22459a5b3b3d818518d66a2298d821456a798dc7e74366e3cd7c0f4b514eda7ee311a8f32ae6aa088d8e9ab92bfd0bcd96f34bb03caece529131335419db1caa97894374cbbb27a9c0f662764a26a249d56541263135aab39fac9c5d35da0e279b7e0cbdab2bfcaef2d8938c8227352bb2e07f43571c11a489517ad62ce68e374d0d8cfb60e2887c3be9e783354f846081c3a7bf89196459ab02245d890ab0eaa457875aa5208d7f8a7e246b408d3c12f2b150e9f0974f + +SHAAlg = SHA384 +Msg = 20c328fe9add7f432a4f075829da07b53b695037dc51737d3cd731934df333cd1a53fcf65aa31baa450ca501a6fae26e322347e618c5a444d92e9fec5a8261ae38b98fee5be77c02cec09ddccd5b3de920367138a87b4fdf38815b9ba69642b621fccb2ec4310a136c73d731c7847eefaeabb877b5fbda1700d74de758b63ead +S = 6613f0059d4adbe9161557a9bb69b26ccee0bbda9644c082f25dc427c0ee7ff5e365f144b5bcb3ca856c5a33cde8a448af076bb578d82f436fad1b9332b616dc153346b3febdbcca6d4d626a3215e2eda7d28c99c23ae9b7e54fadfe995afcc58c2c808ea61401bba3d6e04402ac05c97831a590e704c8eb1a0b3dbe69839dfed564e9e6e393e5e8f27aed7a0f4662d6ae6ca8d9b5b303e1aa1414a879d99a02a2245eedacb8a6dd6851ea2608361866f9a65a07b2db08edad620db12d3be0f7ed5cf7aa6b79eb9383e14f0a7a0e7943a57fef64322687fdeb6f46e737f345643bb7f4e15f919332fe2036d3f13f71d72fb3a0b3bb19403d5fa34a5de6c75dc67b5ef663c382607b5a6b2e017a0dcc38f2bd27457355d0331270d05cd0ee21c41ab7419b8a9cf3d2cf400f1bdf4ee28175f55a63aa5d5e48a7482c0b1f671493c3e20a5548484b88c244fb30486c882f2cd2c8343ca1e9acc12abfc6870099d1e61e7501080cb1087ba0f51c050c864f35353e673b8ce801646e0433513c8916 + +SHAAlg = SHA384 +Msg = 4052ba56f8de36c5456a7a7fc2349fcde3ed5f0fdb0f1caebd702351e1183354894f3976c4fb5ed1932943104bea8bdc3a609b978d189d4d719acbe7793feaa2404314c04f1bbb7e4109eb4525edcf24235e777e63f9d8002af915d64609fd1fad56d49e61e756b29631f98817e6738fe60f7c2c225ad5b02eb58987101b73b1 +S = 695dd776cad9a55228f6ba2bb455d78cab87576a786ca07d008a1456db291de582bd33bd56f5ce35cb506e9867a8e6a389c0ca486bbbf64de833ac48e24650f0a7161142306bf823a0df886cbdd2276e8cb97244c71489dbb61acaf71977ff1ab86caaf8a9fb67bc2a242ce3001696dc45cb9c881c81771233a4f4cccbde0f4c9faf96ff410758c19a740a625a78e54b1194be892d9cdb1e1864888463dec2c266c33a78df8277bf74881916f430f48b1a089140f05425cf450cff2deca4ab418f695ef4c7681d5e0294ee5105e1503a4eb07ed3e331e3bb4cdcce51264697003b4307cbaf2383c30b4a97fe9765c6537f42815deeadd04b694851efbbd2259d3564509bbe5ced1d176102631eec96fc3d9a30b3e5317f2ee98b4f4193c1a1e55993c1975e05120c32988ddb805600f822b463871b82234c09e04181c5b853ccf59659a722fa0de3b2718e5eb676ee80137c9b61700e9f3103e8c7957c3443060ab871752499bc91daa85ca655dcc49fe450eb8480c466bfe7d579707ee74d20 + +SHAAlg = SHA384 +Msg = 4a7956ab59fc034dbd327204ccaf400ba1ae0b9b6448d3bdcceaa65ee1057ca107076079388bd07691cc67df1060b9029c237fc84571f48cce987e2d688c9162c1ddd04e3de776558349f52d3c98dd381754fe11111ad165f31c14041ccfb53780e3f155f178bd919e8f6516d9be73561d29d29e4fad33ee445eb0098434afc8 +S = 3b9316e5b2c81382652f63de8866684b0f9f693d20cd26c2782cf57edffa966a775f7e075be414124b78a74da843427ddb6a04d6a327bc7b3036dbccd1c2b12e635c4627e4a8064c77f1ae06b58881b6144b1d3f2313ade755e31681929f4868e1ba90140bfe28603754ab0c84ebac8d7503ae149224594e38f9410c69770b1c13c53339f5c3577380d8f8759b40a9b559cedafd8977c8d44f9c4f37997a6075d62814d7fc28eefe12fb49193c15fb3124134861f27abda01c09296b038998159c85735326550a214c6b3a5f2f245309170075203d00676a11fb3788b4d665889209894037c6dfcfc3f6232b9ebff516b785945ea012450cad2c396819f09c9bf8cb766fde7d07d426c41b493c19caa1475aac4ad7f6629aea297327c42fb646ba4111477e723e58e789b57929b89cab53b95bb54b22e81f8bd7d3441bb53ee0b22ad122403cec31ca4d4f40fff541b0464cf5d4ec3dfe1e9b071bc4a6a9b11e5cd63c7f4516ed604129e1bd80a962ace74c9e4919c672b81bda0be11f3f2d22 + +SHAAlg = SHA384 +Msg = 694ba0a1cf223f98ad7b9f7e2fa16b9e7deb2eac8f41c46343dd0f6cad4feb82aec463d4c88725aa30c8334c259ddc208146eb128eb51e381a4ed9b6ceeb1ce0bb23b39f36ccac16e6be0e851bdac86d614be8f5560c0d8cb8aa1fd0c24c3daeb9f0f7cbc2f7be23f6e498f1b86119ce46838e1c8f4e7ba5457c4880327a3735 +S = 2afa4db1e41af844e7ddc5f0ff402f3ea1c676902ca787c376c8952089776fe07f8d62a7b2b10510705663f32e4db0ebd365d169505d5d9bbbc89b37b74c24ae3b9c68112f62420983b5badbb238385f691a6795c926dfa86a259d5b073946f69ee99e683d642690fcd40f5a8e4f647c81f85262d26a2b4593e4c2cc452c3ff8ea9a965eef93e318456b3ff6daf3ae5b10b40ad9a4e54191b395e7ea9c275bc31f92637d6d51117b42b57a94c6d049325ef5b2dffad0eb06f5e3c61b796c55c740ae09cd87bc6301dde55480bba60cd2667e8e564cb56ead71b478e82565380c8aef27b41ed3b826027625264cf042c5497cab09e957bd02464239d29b2ced84f926bc169b1a6917e9076f6597e2a55804620cbbc596c68083ce53985ed7bbf8777d41c70eddc6dc952dd10029797fd081027594340d58625a30fa294c07b40f45df177a6e0d9f505e47ae77e036de3c52471ecb184954572f198b7c9b81956ef0169c8375023e97998b93dcd9340a39997af69b083310cb61eede3b7d7dc9e1 + +SHAAlg = SHA384 +Msg = a4c802d77e0432d516c59309b1919fd8b2890307554bf4c5a018c6ec9732bb84b088198986957fedd18678e1969b51519bcf28ad1ebb46efc6b8afdada44f67fb1a756066ad6ffabdd97ae07d0e680916f970864f63e9f43b14cfbda267a0446916be2d8908c5b1620405c03c83ad5a11429cab3459ba8c7471bd574e39d8ae1 +S = 3a74cdbe007249e26eb41ab83a180a0be12472b57bd65295b73f8856b3179fd4551807c1e279f60a3868fce219895af9e2dbd71fe96830494a2a6ce263b2b13bffff9c30f332b054d4d2c1381c0bbc05bd21662fd324fb05ca8795fbfe444ccc127058af7313a94547df305b4b502e24e94b35cff919075b295899ada6dca61540d793ea673465db0c1fc10c7ca2eabc253659e9c0f63a53c79cfebde5111b2e6e02a10d04b58f50b098cabc1a17b4badeb25d8fbfa2344555314549ba10bc9a79c456c96d88b2163336d6a5ab25cefbd2af3ecc804bb99f8ce341c214d6ca8bdee3d53c310bf46a6c94d15a74f3379e57b2f416ab552866078c0e6dc3df594cf1724b119dc3705873be61a6574655e3949eaef7bf1c959de5641d07ab3d4b0fddd8a6706a25d32b80744646d3de3875ff9f7639d4bd398b4120fde22b98231957d2ee3351e226919bdf596223f15cc74f1234cd9d18cb682d641d6ffcda6de3d4ab0822ab841af591cd328e7e18b4f0f49c90412405fbf9a93df7384da3eec0 + +SHAAlg = SHA384 +Msg = 18a02d44366d91f9b94142a4c34319c69f2453be0355f09b92775a2fa51347644b8be0d48f502393f956864f57c5dd9cbcf27d89ca8da2772d1c0e2b68a7f321d4b51323e578261bb0457c26aa47e3e9b373cb2853bea894438e98e52f6f4629ba080e5cc34d6238e6f66c4e462ff4568a9185c42651cb9cdcb7408682d20825 +S = 2525c6e9e052ba2279e553c525a942a040d7adc8c58fce7521093ec9d8b35ad14cb34abd68c3e544a1df38a6299ea4b0c54ff53799455b65c5bfc17d7d2b519eacf80534e817c96c7ad86fabf634e06ea5f9138a1b958430384f2ecbcffeacc3f5cad2fc951732a45dbfc175ecf48b16c18fe1e856c6214bab33aba7dafe6d71119717450678ea0e68cd213b9c4d6eda077cb79875cf7d5e80a86f905c7278e29376ac658f90754b73e16aa235ca891a9a164988f64d7156731a64171e364b68a5cb2bc9bf42b95c86ba9b971c9551ad315976400df60228c515174eb9c22c5e2309dea7baf60d89049033027e7e31daa52c958f5fe7ee2fc5f4fc17711a641099c0b655f2026db4b4462ea1a533c2f28a525b8c0b1d11a7a411e7f363d391d6cc35e11a5c0f44d11cf1be6e6189ef7e535c2ce18e4a24d483eeffb9308d01b7a874f5df0b9823bb96b35004d044f0681e2614807d5f4c5e44dd3e826297bc5e77f507de35503e1e1fc6a9fad0990e83cc3666e6ad70748a13c0182cd1b79cb1 + +SHAAlg = SHA384 +Msg = d7e5971e27df2b1c3fa8e3fcc7d4550bad2a757c25a1b9ffee887a96d7049ea483bf744769dfdfe81e35b711d7b76c7e2a31ec761437c75c405e918186ac893cb34c773d8886db1e05ef433be7ddfdc46f1eee1065eac2345d1546d53989113aeff46aa58cbe66e4793e5123fd2d4f04045b43f21fa0f0b2cb165f3af68580c7 +S = bcad4a658073dda8cd4a8850fc64d4637e2018415c61c684d785812e635920c59d9dacebe7186f10282b8a26d92166c75ade2194cabb0fc1afb2df212a9bce1a3e5ad4a5f735a2eb03c9422232e7aef4d69c3eceb2dfb9e06f336922d02aa45a9de30bb409887968b6a95f797cc6a1da14bfba6805359aacdf5c5c0c66439c2f8689793e054478d260df80d2617658389394601f2ad20cb502e8ebccdc6a6cee597541863f39d1cc480ae5656281b441214bc629402865b2cf62b21a34972c529cb91e1deb331460bd2d1e87bcbb5d1f021a850cd5a166f74ebef6f97a9ebc0b8e709c13e7dd822be44463dcd3cb60b1a34b7f0972a42b545fd9f5e7bc14c7b987902689a63695c5221996129c4ef88d3d346d594055ed76150ad6761742441f98d76f2cc4f6f4afab8da48be18ac2e9770307e55762e47db1be470e21f66d21062d5e3c6875a23ca11ec4c928dd57f9253e766910347c74314c99f17897b59693d55d3130a301353e781895e2482eb9a2865615e3bc0f5f7c223d064acd5cd2 + +SHAAlg = SHA384 +Msg = 6efdd76650fc2cb2d18b8bb3b7698449aba8b729e2ba958dfdcf662b2e5f90649d0216bf0a885f95b346390e78ae1d4c3d23b5e5900b9b978b256437fc1cddebc45d94997d269a9f60e088c565afc06fab47f5181b01eefb492e86139aabf846acb659def2ff66389f0280c0c695f51dbfbd81a8ccc61523fc93d6a8503269df +S = 51ffd4d03f1c19d234d4cce5c93d6550c051e011f16ab5b2d727963f24b829ca50fc0a5b283b74f25e58be40109eefa5cb6968e9af5ce1f3447da30f636ea8d81c002b90cd4bd40730e968d23b9b6d7b6e9d67f8044361bd4065b520eb392fe7d987b7735faf72cc82431863db43135e5b478ce5b40b0dff81ccf1d9999e3b2c9bc54aa63dc922e2a690df44b4a77b7e0beab27debf700d6691b78e32a4bde4f3be671d0ed2b64b5d39b5f2320dbaea1e95dbe7ee8144801b95bc42e1ce7f983881349bda38f84ceb3e799ffd397c03330cb5eeb6f1c032d73ec0ba9e4e1dbbe7315227115be902a97b774ec3e87a1b1a0f82c1c095cf13650e65ed186e28ef40bedc08be2c0fd46b049cc0c39c7acb2803afff4f46fdbe073386887e9d6615dee8acaa81165de79fdfeff68d945a90b6dc681dd366a24d12af416806d97384ba165657697b29ee4e3edf92fdb7375ab03e485a72073627e5334016b3a7f40f16aa80dde27493a6abcb9cbb91b487ca3dbb21c9f02e28f7e9650f4eb568b3c9c + +SHAAlg = SHA384 +Msg = ce9f1236befbba4c9664eab4b45094ae2133aa6e17f2cc2ac09b237241538dc0f790fa5000881631fee9289d17ca398641e17a71bcf7e087df9a11e9181283452f96e2a7cabfb391363c384d64c8938232592d06ec9a59f3139c35fd5dc8d102fc1994e32388db93c7c7e26da331e8cb7e028ed4b0c38195e3095854175fc020 +S = 4e1438410023bf9695d471353720e2a700e23687bc0cfb5f76c990319a98e6d58c49aa89bc3a0860ae13eedcb69687bb3a9b4b69cf2f5a1beb06dee4512e4c9c0aec10db12ce34e97e29cf2e9c51ac74440f24f2b83e76000537b7764cc403455838f791d579631823bc9c58d9d99489d2bbe718d80b50356cc5022901e7880f79b60d53911932cf77f47130b234446778b52ad14522c3a1da356d8da46b244cf3ef4ec53dc1d3b7b36527b4a5298732aaa78444ce022271b45c9315e5b4ab4d95170619442f6152cd8329f5dabe61a28e4105582dce523e220eed5977f7ccab3620d6e505be5eac384dbec79146861e9c664ad2982c3509076dc67be9c492046911a33d79663c4cc2ccf2d4c526200eff605217e44cf35c8f9c5569ec3904eff5a528a2ff6e65f4676f8801a8ed77d476aeec8e5fc5dabec33b7befe4f6bbb17dd75a9a6f0e88a0c0667ed0397c52adfe3213f286c3e3bfd9d7af189c8c2b2978b2837b2b7a59bb9b946a98e7cdd771e489e3a6ead1b959959301a2d7119050 + +SHAAlg = SHA512 +Msg = 50c2197ada262ec4a5050804b3b0d19585ec4212d7dc01608a282eefe258383cf181f69b5324f3331c53094a0f1531c3110c99e4dd55f75df8b01e86e8e1cee9a156d10040094340fba8325658f467b09e67823f89194d7b42e44aa88ec68e584688d232079dc8f12a4dabb0f7131a64154326aa45efaac3510cdbdc3ed11f93 +S = 8c110bdb2869fbe144f9ea82a6a06555378eb5c5ff5473b6d15b54e5c0111442af4dcb429276440299c424fda9fdd8fda7bbd4eeeef66a9c1652c1a68844d691ef91a2a5c7f618af88b8471361aa91a7df89dbefaeeb2e596301c614c358270b397eb94b609c58397bd7ca6348f994df52ec749204dabcbcaf015dead4399df118ccf2fca1e02f20a4f16cb4ef04e2289bf2e906d9b4acae7db719f58a97990db75aa36c5a5d5f522379f7f52c7a999305719eab0c58f8532cdaeabe8349249499901f4777295b655ad0193c8842cfe5b975c1c0cee62fe2e9300bb377fb3b7462e5937f0bd642321596819365379cb6bf51a3f0d3f448859df3921608f80f886cd34e582ad5a947b554abc2d4e25c3250a1922da7063c6fbb69973bffcd538817434679f99ed4ae0a22098621f7906bef15c8560fee31594096849194b18dba3f7fe9fa8902668b3225f11acad8b10f57b0fd5f5dcc6d74cac0a040ea6f5474c7a79fc465e81f853874787d64796240997c85a7ba9646ff995f5accdce85e78 + +SHAAlg = SHA512 +Msg = ad97dd6e421faa1461cdc3a36bc8c01ee7d26eec2e2925db67aa5664b63c6431b16cb5dc145508fab5c30958ba982284096e958f007dc81267bfdf6fa25390592b20339740ba1904d9891fdbdd288331950bf6c36165f2f2aa484d0c170e0fcd04f981263016863cb5672eb43e40892e74f2b90fb9a74b84198dc8c47d378695 +S = 8caf3ec11af85cd2a161773e82f3b3e7cc38ea3781227d8dc8049d07ed01e41e9db73966e7c707412bbfcf1c0792614da97ae9c39156b4da1f0c7fc9163dc585596adaded142acdf646f4ed7f27d2b9cd04325efd45cd2d1c86fb26c1e5ca73bbdc8b76e1a5f6465ccfbf9e5e528c9cbb341206834f235b94f97aa70c3a944dc6ffa15db164ea9a114079fcedf38b344a1cf16b20de1bdc97e32674f3116e0c129a8c2ea51bb227ecaeac35e6b100c1f1b7b1fd65b4eba15b629032af21f05c33f1791cca63690e05bd9bd04bf2f87c8ca33cfe5674eec3280dfe0523c90eea83622295a3fa362389135c9b9092bd48d1f3b90ba108d782eaa42c2cd2342e964d649f4c820c23b732b1abf6676252a32f46dbb4410fa8105bd4016f32d2527772d4ab2f0e0e169edf91440b3952dd5cceca0425d877de6a56f0b899f5cd20579b185d6d6642beaaa98f5a715a0556ed9e7c7fe0a19adfc36494e5cdf606b7d856796dfe2035f589c3344c3ec9befd74ed00f2845a36d6e7d7d904c530e379dea + +SHAAlg = SHA512 +Msg = 8728b76733676e20a76c7fd31e959cf7842db351db407266ddae0b36e37f34270576724083e9989764d08a0d5c1b4738f34927a1e4366130c334cfe4e35ef6c777294122f73c8dedc682ea89117da0b2fadd71aff6511ecb739d2d09bfede8142568a9755909550816aa27b10562af4be1111ae1d939b3213510aa0d3dd314f4 +S = 56a6d09254c656c35eacd50b69acdafa06935341c59216cbf2eea84a678abcab22fa17109512a46a30e1721c6d02cf103ea31ab154dbea1f9a59385dc415744636f017ee1ee0304f37e034b5f397815d58b386b63882db8d06c1ad5cdbdb834433b5349e5da719f56bc7a9ff58f3d05aedb810704ed34f8aed26546bb9417a89a994532cbc11632fae26593e090f6f9035d4a2df06584175264d6ef004e34b4a98ff81126579b805352aac5e5a6a3574bcf88f2fae077adf7e66a5bb8e8d45d28eecf89ce0253826806f7bd0f27a5591e8482101c244e5d518d0285ae286819576cc00f487582f5fef5045bc17e245f9f13a4e6c6dd7b92554daf948009886132719cd7fe3b39d8020396e98f0b19c2e40cc1e905d306d74217972eee1d37676238f21efa4ce41d1afba1768e3976b909bc5f1b2e218bd36959ca3610795c6e7ad31752587627cb379ce9bff20d9501bf5f1aa5e5c16f101df44a6c8845fd7b3c89879b623a77dd1271b586b0982cd67388c3b1fe4a1a84f5dcc48538e19da03 + +SHAAlg = SHA512 +Msg = bc7c3781e2f83a53149fc95c1a6efa27def23d376866ec4b0c1c23e0e21ed1f677140f17c268b1965aa91b15e62d5749d4fb64024ee7d06569ff897ca026f0f282ff2f17a70dcc2ae8187fd8cfd241004dbaa6b9ab416c96c32b5429703930c543053e88782db49928b39cafc0a4e2d3b1f8ac6669bae96583692dec3a9dbcf9 +S = 3b07f69f1196cd797249b4de7aa4eba49e0cca5dd79633385740b65acaabee0b164e755ce5dd2a3ae78f017a8e63485c0cf462d2d5dd7ca82bc6412c5ac6f6859aa4482a4a8db4c4922c35d8572eb5946060f16c8b4ceaddcecf9c83c5adf18aea527631bf54671cdd482cde94ea98f3400b452e6beef0637d4451580255388286d940fbcb26592daacf30452b886aae029798fc834a9629e425475a1c3fa74ca5020b126c300ac51e1c1415b6800f9eb9becc83b7d5a561d867fa0afc85ab55e8ffa2ebe1177bb47bb8a2ba38579636843c3f09643a84725c203154183af437b37cde023b89ab2a1ed997263991d13473bcc6dfb02526fdd7f41ccb579d5b76112219607854e63d7b02ceee6c36435eb2bee7ae236caa572f3323450c2dfc15ad9077cd79b47ffb45618e2483f4ab5b970179a28dfc5e1f0a25dbc45f6e2b95d3752cb73c31f60212ee763242b1bee98524630924665a917b84646c0bf773829c204341b17416dbd0281c22d33f2ca9b16ab2946dede71f8b25668c22fc1572 + +SHAAlg = SHA512 +Msg = f73951605d5b351846ab6279b2faf86df326ed67bce1b9497bb35386e8425d83ded29b446b08aa4423f3efa4b94dcd88d0fd1bbf0ee1d5a272cb113ee8c935b51baa68e18bbd463bdfdcd8fb7ca9c3815618bff4062e4b291e08a0c6b91ee3a756c99e80e60371c4236e05c62499421f2e7ec24fce4f85a72472e66682cacd22 +S = a5b9a39ee692971ec6d6bc5dd461c54dd118b5c2e604711caea4b40b258919ba97045c13cd767ec0a94254113e729469201ae2b1bdfb53dd5ebb59e9640a32ecdbcf8ad4729ee7e3efb91592fe3847ff7fcc6176a808db4c7fdbe4318afa7243bf7c9531ecc315c9eab2d4aa30df61e6ba4c1473dbef58b486bf38ac9363a61f660110992829c0b6d87ee25c82210f235194587f96a067c3104026439ff5a7a8f64823d35d76633af2c4c33290133b06c4c1ca4d4db7f090cba1eb30da6a77d4bf35b74738f135a60f0fd6af9848a0d51a868deb6f222cd05cca8007e3deac0a2946c7de43f194a987f643c6dc91fd5ae4672a38014c891d3e67db3219bca8206e77b7d3bd2fd84032e80c280b2e9482b4e6e6c2da9e132732cc47b2b633b2888b6a6f1f96ff3579f0df2c4503d825daff3cd0f516984b2a9269e51549558a8fe766fe816a62b7c462adf265bcef1f89f2e281e363768bba819d22674ad8881fb783cd395f4611a881a1a469b4135560bc694e67445c4984b9fbec9c1e32c6f0 + +SHAAlg = SHA512 +Msg = 58d1b97a7b9eef3e425004bad5be8324236debcad4b44b537f1d0f481e0d1ad3bfa815c67cef06deac2b244a5b8fea67f8196ace4eb9e490b6b597c08a4cd732dc9a608368bbea59c833fdece78d07c6b843acc728de5d6b515e2c50f0dcdef2196e42b9294bc237fd3038aa610203c9cbb459bd4a6bde6db9e076fe3806589a +S = 6ae883471ac6a97b9d4a99f41e20601529cf4c06cc6a4d746fb3cb791b0d9504efe292e8e1bcd2907225f03f9fe5ceb41974f01802f840e619b1e2c13338b55abbc2417845b02cf5ef1332644272df1fcc0ad97be9fc09dc29f9fe866c1eb2eb2b27147cb647186678cef1429a3b0e67005c4855119c360ded5e4864b4a80f0fea80caf33e4fc27b1abc81963b06139b06f38c089f79f2a1e9dc24970147442a2a1c064ec013d5d5177e8354e1e610282a7513d2d04177a5b9223d300158bedb35d579c91af4150841f7be2184a32813d4b2df0705c7bc0c86b624daa3ca395646745432500919c6f8431eb6eb8f481f949cb2c5be2d9ffc124165afcacb4082f97f518f9834c77b8584fab019e1cc1002d86a8c3b5bcf2bccb3157103fc594326858e10cf8c90df787351fd59e1eb7c31dcfb932cd5deb54e066d86f53107210071d9ce167711a1ae4fccf33bbda60377fc9756f034486d1eae1f2df3ab10c37ad2beae18ed4a89905ff8609a220879145b569f201edf18b02edf67fb8f9fbc + +SHAAlg = SHA512 +Msg = 529477c33067fa8b2db77cf463020f1d86011c1675e59d450ee28d0947ea9d9e7abb2941011b6a940362ed438d3a44e8e5a3fb2c1b3ace2fe0ba182b9bc38f54bada2f0246b27411bba9cc8816964c7a2fc2a22a49344b72e8320666e3048834b9fb714f28b27fccfc94010c269e8f9b0d66f958295d7dd6cd513d034436f007 +S = 649c7c6c5ef860d78eccf523d0c7cfc3dcac9dfa91abf4691e9ba892485bf9df5cf73db22fbe176a1b4e8ebb7aef617f6e32325f927c0a5f44c41304202b70d072306c3648f506a80ee9610692678812a777c305c956f7d73af5c9e1aae19b6b9b5c4b5e7f6a2df4ddafc4da2cea6d0c2143c92d313210b15ffbf20d3cc26a108aa4379ed04cf6b60283b0a0541af1332549122b6c041943a157d7cd3df03a242aa2b4482281cfc272344729a6316c342847554b6a10f7d257c30c0b19f75d7949a754b187cc29a6593ff494274fcec173bf2a187413b296c17fa27ff87fd713ac30dfcb864d07ed2749639382666a41e278c8106dea0797a63c0a185977e86ad72e09afd841d79e4d7ce69f1994b18933632d7eba2cb768a1431b0cf60cb22940d4be6581d26661136ce6db4b14c7860852b3212e0baf8a600add573212d4f7df386d0f86b12209f4cc4ede6742892435b47ff27e98dead1c2d4bcd8ffc93efd1bad3f10e3ddc53c1ea57768b4295520f81c867aa6a5e8e681f705c116bde7b + +SHAAlg = SHA512 +Msg = bbf033767a3714f3e2a037af7e9a1fb189818a4e5770f79cf1576629004d5fecec27357b44498c7f61bc19654681a957cb25656bfb96541aba3521f3ab2c1f9050028aca736d1029c5678f9ec6832175e4825685e721c0aa8c36b57570fb502130aab9c9cf4aa6d958c822c3c4498ef31dbfe504e4ba4434b182a9151962fa86 +S = ad8c9bfd4cf25a482ef90ada72a0f0858de561d14c47c25a4693a2176a976c43518f0afffaf16a58b7e190aae5d596cc6350578fcba70ec5bd4977a10b54fc05c3027fa96bc0727294bd67b2ad7c1f965f76c8e85808021c7b24f54165f3dce007b153ad376ad819bd30d90f6035463bdff22eb8c11f80aebb413f78e59bd322d3b9ebb2c13668cd94bfd00ec183c1d1be05ad2faf376b92dd6aef8b151509f5406dc507a817e0a42792fa5af4279294e70effbc7892e8c1bbd614d040cec24dff252495d85b2170206b69eaac65c3d99d4dbdd4bbc584daccdcf2dfe8eef7a0c447115d30270f4afebda47e6479f6095ad3e204a0117143b5901ba809f1a6f73a0a23e9cbb1d7f0826059095b0954c57f18209f223f662286c9b2c098b2baa855e2df4124276b8585132b6f9e902d99a65353b30b9639df2b4a471ea53dcd1d14d4b60df94387089b2e2ab73a686bfe0465c80cc28a3db0f16c1acc5dfd493c6b0d01a3818917a76c210baf2e766d665a6bd155e902ee4fd82c65003b3cbda9 + +SHAAlg = SHA512 +Msg = eb8e907ccfc298b66863b2b1dd0ae3ec054848a0853b59f2395e6f6cd6a584aecdca3a6172e11f6d5d33306c10499c5edb47ca9efd7c9c150c36f6ad97db7a0809359673d00ec115bffd016cb17fb1fb7049813cd5ddbedc305cd427e99b11c26878ab98336f051656682e9b08d3aa2a8bf77663548746b16c7711c4160dcf42 +S = 2f17b94ee519fa45fcd2e83085f034398cd14c88a0b3514819e059dfaf79a61ee1fb453438c65bbbf923c8fe1860c9d0676102536081eb5aaaf5fb08c8c895fe4d5fa3750f98ef9c1206c76c843e7785e90455adc60718f2d44b2836d1dd8e82381a0bed7d48a71f7ca4d92b4be730364fa6ee861395e17a615aa210597a89802136838f48bd9917ca4b94c6793b3067e22aa746df17311dcc6627cfc5f9b3cfc02829f49502df3559c80555fdcdc96504d8cef19ec6e825bcfa26c38274b7ea69ccc575fe47d5aec12ab45657f458386bee8dea5dc823729c5f4d3fa82d385df98045defdbf6ab984820b039ca1bcf5da955134808190f1ca4dd60e0d4382fee155b86eb680a099c870dac75fbad0310d0743e735c329b4ceb608a448afc1a6139bbde7cf828817f79cbdc08ba871cbbe7073061ca337253bd19e4798541b1fec54032f291045bea57a8aee43cb6694774426f21ebe049d57c4b8be7e1dc395357fa1112ff49df86af49d0a96f6d24f164116f54cd2556497edb26842c4ab1e + +SHAAlg = SHA512 +Msg = 373a8c725c3a7c1658d05dc68ea2d2edc91b25f9d3b381bd4370611496ac48c8811ab3b286044b22c6d6608116e093345458d2c4fc9e8a3cf6c417d3b24e80cb77366199f8342846293c841550471b665f567cda81b454b8f37ce490155cb21ec1987f70db527a4b2908b3cc655ed24b911e09848b7d47f9e1a0af92e65e4887 +S = 33353a5e6f8062b183d4ddb18e718f19064b633ff8e3cead3ca6dc9af875110242bc20187b288a4c21d644188398fc3404195bffbda41adec3218b18ea8d68e98406cf6a91c203a48be073fa337b4c0e94f7cb8991d0c0ad047d147b1b662c15bbae49695af8d861d19e573103754d5a5789d7a84c41790b52f816e24b0f52c77ada15deb52b1b463241d734a4cf5d4b031d8473502054f5291d7a867ac0b2d7a086602014da3a14f4d25379823c03344475f18bb17b67326ded6b93b725bbdf7e7f8df5c6e7b865bb26ce989ba75a93873d3075625d882491e7bed188af04232f27d4650375529432d7bf4a79f83e0d0e1b1ebaed4852b8fd317819ae8e871a2facdaae876f6c8927db122e724ae82f17ba571baee771e634f8f9fab80e202bc51d3696f9f8838686e81fe0cbd97b56bd5c0947428a8a248ed2f55fc43940fd80cbe87c4963bd31138c3ca40e07494cef295e285297ea9a3d6d63475d1c8dae9f820e5d6d2d761e248adfb77b6a9ff6d74eba607690cb67fa78a3dbad573774 diff --git a/test/vectors/rsa_vectors/RSA3072-PSS_186-2.rsp b/test/vectors/rsa_vectors/RSA3072-PSS_186-2.rsp new file mode 100644 index 000000000..a9a67bc31 --- /dev/null +++ b/test/vectors/rsa_vectors/RSA3072-PSS_186-2.rsp @@ -0,0 +1,130 @@ +# CAVS 11.4 +# "SigGen PKCS#1 RSASSA-PSS" information +# Mod sizes selected: 3072 +# SHA Algorithm selected: SHA256 SHA384 SHA512 +# Salt len: 20 + +[mod = 3072] + +n = 9c43ef522cab18022297d3d70fa491d03b975b844b76cedba35d8d885ddb2825e31fd5c101bd9e9a215520bb8cdddeb6ab2cf2dc86065179477d80f733016929d7334cdfdf818c1378a4b9428fa1ee2e525321f905d0b949d3abc9e93d3f30b077795338bd55c28a1ced134bb2d575bfa44b2fd8cf1d5c54168a12a1d6c511f62ca973cdb704c233487e1fd39e5adc8870af352ec3c6a6a64152fc82a1c16ecc43d1d5817f76a1b46a5fab9db8923311edd3cc032fed7eb6252e77db69d7bf9ee35dc4ddd0fbdb9a76afe25a82f4495aa4f072cef9b1247cb368bcc8677565a47095242702e6341281f506805e20e8c89e9af28adff21c804c70cab10ee2fe5212ec07987d13e7d4b60529611e4d33a062d724cdfb16cdc48b964ba07dfa2620d5a8805d0be93380850c66f3fada059802a5946bfe3b0b10e19a8289ec01f6514abb883bb53c49dadbba42d412ea264c8a5122fda1ea9b742289642b0ea34ceb76ae8256a97845d37594cfbff8c7a4430176223bacc3bef395ceda13fd211c71 +e = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = e2f6dfa5014fee6b1b04108682e85619ded7c4647faf4ae8f19cf6cbd199677fe033859f56906f1979b1b5926df4c8064eddaeaf7c15fa2936b3fcd36bbb3578cce40d2f269fc97fef54b7c71fefabdd419baff6c9cdf7c6a88513e81ed1687fcf92e11e1a82e2e5a6767eed3de1e9e7de9a30ff0ddf27076e99a3d192e1eadc +S = 3a0622ddff5a0c1f5b545d684054e46211786a2e40627e0cb6795ea0d176f3c97e6536fb64c5eca7b28b7ac52e48e3d50b916d2fccb87d70cd8eda7c15c2308734254716e5b400592cc2e5e033ba27866cb14fefbdcbc35d5d85d4eee8ba6bc2da995e8ebcc27d50c48aa988bf45fde27311a9e2ec029d0fa6fa6d3efea460fc1a90e443d807d209a4c06bf3022d529ab2e4a877325fcccb3f86ac16200ab95628bf0c1c8c70f6fe1a9f288bbc0162a392f40ad1109cdbbaf03d9b2d514a60983874350be9aef886c3c481a66325f137aecb4c82a8a73046dbc1dd8598ffbdb828a3d638f9dd8139a768dcd8d30d79740ef345c1644d03e6fb86a46367f6d82a7a819057ae490e1b100b5842ed385845f379101e37ce604531c61de423df66200d45b7229662fd0ec3572593b09a5213ec14c1d7b2338ca9c763c0d18946f04eaaf57ea2ebc79e093f2fd4c64cb1c1a7f0e888dc2d87a15eb769f56dc180cfe1597cc3e4e1811d4e27852fa188c8fec4fc917d4724d33ce5f3211895cf7e8b8c + +SHAAlg = SHA256 +Msg = e68a33ad4cf654595fc2267e5cc37db256519a4236434ec6011b63f9597d37c847e6aaa9379a3a2e44de6ddab6687033c914fd18b1d88155dafa7f7574802fd82fe96c05431acd40b49b1160d403c0db09b10f23d0bd0435022edc6e576eaaa128fb4068795e52b73661d9b7bd7db6d19d9298089ddb1f8d0120428d082dee4e +S = 11bc27d78b27f7d05a5d77136277b1b38b4daf3a20bf4fba3d95ef3659917eab129ae60312afc41553c272dea4e5252208256af99495f67d89ffbc02c1c9612cb43bb1f3f5c24295f2e00348ee900a11029bcbf1b8d14c92dacab954db99be61614fbe6c304fe451fdbf3588dc57bde77afa1a957e5952cead416930e90f3f5cb7afddede2479957bc47cf2558e961d0cb11608e8c84b6b6fbd8da02275a5ea556f6760f30c9ff2d4b61abcf98fb27e8f3d30855a62aeb0a4d1fc9cae94ab4061b838c856c15e70ac9f842a6eb3f32ff2ee2c0da59c7899c4e059deda1ef204a6b22d7abf59fa86927620782a131282381bcda9bdd66ec820192081d0de3d0bb1572e7e692475245edf1a48b934c67733dccc65584c6b6c2ba40c8ba594a584d15ad073eb80af1fcc8211e6f9bd83d28846043fc23d9a51ca6e0999d702ac3eb2fd7a65a33192c9d8b146689350f3039dcabeed8612758b47c1fe45107b4f625a617722750270d8ff6325a85b7f96a4c8fe717ce721169864c365740a1eee9d7 + +SHAAlg = SHA256 +Msg = 2c5e7b763eab4a2cf734d173cfe26320dbc5e65543b4e149f634d7479c9cd4facd7645e780270c3bc6d3d4c7b87ba249ad68adedb1cd701333a8fd53fee994be6bd67467d4aef1234b8cc78c8c8fae4c31382f982513b5fa5b9ae754c05635226e47b1ff2286216bf02952cb3567afb1cefd115e87cfd985d6d33d52ca2bdfab +S = 824c114d67b801656ae56eaeac502d942c8b0f20baebbe8b285129038b400c75dc6a5325c406724c72a52537148ebd7ad3ab20aaf4cfec3e3aefe03bf08fcfdc1cd0d4c13cb71b2bea652a1629203baf73fc4468d1f3418924e3d76dd2b82c8bb1a4d1ef4917e33cd17b28b032806643806b3e2411719dc4f9159ed2e8430c832bd54cbd84aee8f9d47a983f69fc955d015cdcf148b3c8a70ffa2464e7942d2c44f48facdcc1d22561934d74c80e32c4ae5c6e7b9951c101c563c81b53cefbe10bdb32a1e16504f499da9e35bae034d58cf196bc540ffa84f0344c9c27a42e40b3fec9ecdd076ed5610cee4c9fabd6734fd6c0eb7847c6c9ed3420a7a30ea4ae88eb8b10af3397599558f1c1fded9816fa1311e809f22d8acd451eedf7e6aece7fb71fcded79a3c03d8f7f06b8ea95a4f47ff762e1de7aca88453beb372b0868e7f22358c73bfdef4fd59e3b882f14de6a8ee48e4e5b644a39d03f344e67d1d487dd297b25a70765110bda7d437ce7c6087371437ce34c1b583d4cdeb3b8572d + +SHAAlg = SHA256 +Msg = 741a36653faedb98809e325b21392287e941360c573ea1e3d1187f44fee55d187000fcb1865b52b99016d2683550edfa123dd961a4789137689b1df6400e136b191c5e68cb4c3eba40ee905ad9f450e80d035c5454ca7adf43939d42f817642cb897e4f2d728a782d84ff49ad6cd513723bc474f2edb65c2aa27888fecab5943 +S = 14f9aa9207009990cc267a3eba82b74245205d714b005aef399b9af0d1f8539c8a4318b91db39f0a2f0f2dbe8d36d268ff95d6717b0040f7bb0e4ee4221f992088cc566ab4e5bcfc9a19e4b6e9b3f0e755d56169227cb056e087bf3c0aa99b7309ba20baa7d4dcc02421bfb550a8f169089e8cda05ac86e3fb254d1958f8446ec27f1219a83ab7e2ac13d59c8f254f4276f0a026c364be502ac03d2e6285a9c7cc7836c6971fdbe9d26e396cf3c8a42ee23bd34559f439158c93609e14ab2f33bdb07f471103d1d0ec51c1c83ebb01934e08921f18281b37f54bf79234112f38dd4b2132fb737f317b33a2787eadd13d2dc67ce79a83fd0e3e107fccdbaa4e1da76933e9eb81aadd65ed9113ef5ccd4d007e548ff37a432aa991d7bc46b41c8353dd87155cf03e4449d7f995ce0afda851a193ff22589ba6e7a57e3b2c1e82cf2b5dc44c4e440fff9887220051b64cb929e8a1c9fe615cdf2726807b182d84ae7183e522fe74db12df85eaa3d67d4dcc38d1e7124b9017e04a7893b52398cd38 + +SHAAlg = SHA256 +Msg = 43903af93508257f135e951dae70fd4b2f0efefa505e351dcc7e5868136c81574323c973540719d192833ddb51f13a52dcbae294aebea51be5f6aa47f3571f5d97facdcf0c7befbe809f44bdc73963d8514e4fd559774bb96087ef8eda6e7c64275d6d96c42b4e4ec3f8d14b78101fe276116c43ba51cefe257a4fc630774174 +S = 0e5a580ef7dc8e5fe83b1aaac5eced0bb64f3a065d246d632361da1799b5bda44727419eb1f04cbf0d8e20b2ea4cafe644e79e6227643f75c36c302b7c18428f12191b60fe61db4edc7fd60f23721f4eea903592c3c30e1210341aa69b953e93a94b9bd6201ec59ee36f5f198582da92a0c23eb8f8c98949ca9e58f6b5a0d6dbe42cc958709b57f8901886ffa3134d0b10eed0707ac22f62c65b6e1b7d3af7e10fb94dc9a3b94fde24b24dc5a8c1470e6a3a006559a8a39c0d781b5f540f2226c167dda022bc327e7825a9cc553899e4d507403c86c0f024d1fe40bf42ef1540b5be20dbdc49127134acfb15a96d54669f586324bb9df69301b1cdfa181b0b35a5ce45412b61016876a674241aa27f0a2bf34de15345a1b39849060405ae356608a70e3e628c2abf25fd192a62162028becffc62fce229816a0946ae3895eebdc4d666c3507853b1fe4d2130f3cdf01ba80d067f1dde4007c3be975bc0dae01855543b5a0ab3fe96c77fe96126bff095d67d6260d142f4bc2608ff6954486346 + +SHAAlg = SHA256 +Msg = 19e1e6ed03ee99818104e535dadee3d27fba2f9391c58e37a3d4d355c15403f0b184b74b78e2c2fe21e2144ab9e6deaa9e6bf7aafa807ffc8a7dc2c9a4f15e4578dca986961f4d96b03035c7a112ad46af85c4f30d7af570a4c9077814263273f5528347628e8270b85511539b4a97cf3a705e16d4993abb7c216c0c19dbc5a1 +S = 571010c6413886f83945e5c9bb8d24322b19727a152bb54271afd7465028ab4390bdd91aff520377d75148a800e45b83e5edeb73d95a2d6192749b76e57843f1750f56316732d3ed49b388665f71b173acdd72a241b1655f7669228a0042cfb28b50c90419574f7e4e85235c6efb3f9647676418b89a7de50eca247590cc0f07c62befd651931007a26dc350fcc2dbd8d1cebd9ca665d2f403ed982eaad6c40876ac295c80de8813926ab9397d24dc26c7c2590a965f7b33a65df281d8f5128fecb9aa1c728e27c6a67dffa4ecfc02b5e5c5e488d876f0801ca41855cae3c1df8a65a10d4fe8931fcf7cb98033d139f1d073f63ff5eb321c02bb24be7420c1170edb4a98b3fe96a21b4061b5ee4a8ecac43311c2b5ac81bd39599321e4a7044c91d72dee60e35a740a158c6ae79a10e14c4461fb446a3ef4c27371bdbe5dc5f86d9229f479a3e08d15c772a717bad12934bfb3f39472442e1e0535f321357cd5570a58b4c59850a0f8f788d0ea80914ba7de1aa307a3e37ea21cdb93e05b84db + +SHAAlg = SHA256 +Msg = 7735e7fc6d79e9cfaae1936a4ce60da9cfdede4125c6a7a3084011238fd80459ff8b1ac7e48a53bd613b0a7ac58127945e3d979a9215f9f72b749a19f3d1a4d38135920052f7e76a1cca20ea5efbe7d03cf389848a03aa6e276138148c6d9d82a43939efdf490f9d8297be0141dab4240f089e49351a22d0a10fd15a8133572e +S = 3eaab86fd46c48794841b4695bf3d6fc0fb396947e118ce3d13c81b5dc4a3ed6e256714e4809289df2d6255c897ca8b284fbfcfda744c4bc1538ad392b5aef9af39bf10cc320191f3f4529db9bfdc4d7a648540ae8b547e809f93ecc81b97dff4fbd19a1856cc1315ae08c91deca2d7050d497007f17dc5ace82afa21ed131ac3e429031b6ffb3124a95d5560da14c641dcf74467f2d7eff31903380b2bc92fc665898730422d1e571058e16c083ebffa63f7fd8be347566a1984f0e2ec228227fc0d5b078f4c4bfcd213381aa6460b3c655d37ed377b4fb38f75c4dd44f3c1699becd54a82e1d04798c424ac5730dcec5bd0ebea2c461c8db4f636c7f35a36c5cd373c6c461f601797b7b1832a09ab4b1a00b60f35c4a67e53aaf81182832857eccf9fa7cfd0facc20a7f08533cd3b21b0d82c2b26fe25a27d6c0532d07adec2add4f91948796831afd9b30ac2c71845d8a8d91d38b691904a75cf00b1e742d1a354715e0691a12419502d278319f47aa63ad68181cdf92b75c4f692541e8ed + +SHAAlg = SHA256 +Msg = daf9ad0b70f5be0c1551055de8bf42563768c786a080c7ed761dd16b674998795b55f5179e712f05427a7936bf13bc82ddf7979bd48ea542b1befebbfb03007e97c24f2fe9da1ad03c7da036643ef3b9a16afc30c79cc01d9c8ce124822868c256e6c13b975807d4cb0183431e676f644d69ff2dc2d3a2e40130858f42df58ad +S = 5a252b81a80703d8019fb72fe0d6719b1d5fd09f041904301e644923a21f56260e62fe65597178df6257cde7b2e3d1351a571f0cf26f0bcf45565728ccc756f3097d3fab6a4ba5c76707ba13c46ed0513d923f5b119d84953965e46701d73ff258faecd9f3aa684078129ee881d0c6ed2d8664d5b2bd17c752d3d002f87bbeb96a33356a103f29738c47223f98a56f65b68fd4143d8f2dddcd84f5d583f5ccad1bb4a8eab18914983fadc53a1f3d610512f9964e0e61eb8e4780ee29514001c48f6f268338463099c50161bafa696230d7057085ff57a798a1d3f3fdbebe5159b954c1ddc652d2309a52c79e1db5bb33ec2f4acda4733bf98b34e1763b8d0d9221b8754d1f3110e2ea8d3264ab448a06908274d2e718a00a577812f95cb914867da2111faeb826431c6f763d4a463408ba33208f72afb76ca8df01b5670909e87a80768895ec221f02bf2f6223a3d1744ed6a8edb3ca49092c266e049d96856e7808b9c4aeb5880b1825eb324d7d3da6cec0e0eeadf98190f2dba89d2d4a878d + +SHAAlg = SHA256 +Msg = b46aa552e0657eaa6f34d68f3aa162afcc5d1ee913e89d545bb09d837e7ddf07540c363671fadd2b10e50d0e4acdcf968cc010cb47b6f311e9ba6b620d4a08dbee01117a2273d42685593aef73ee9e983a98df52cecbb4cbbf2a406769f0e7cd6b8f5fa65a970aa1b6d883bb1ccb77bdbe2eb60611ef898ac54b471bfa3723e8 +S = 1a7aa6ae05b539db688ab62981446ee7f323b592e7714e9f5bd667906fa34432ebaf26676141d58a36d69b0a2b467a7a626428fadcf98925ba5a18bf831adaaf2505044de1adb9c12b7eaa68d745e1dc8239ad21002284c342ca74bb54677520e8300530ac0ee4f09b22b9442fd1e3279893dff9d83d0a389a156d5e7ba7cf2d25b5e2604ae9009721befe6a5529f8eb25c4a67d513603526a2b5919306e08a32e3e6eff81fb21f7088c97f8ae41efb8b8b12b1bb91dd0e840a4496031dd01805d2eff2c893f4dc48a72085af5f53ff6be18ea26ceab0b3ca17981ae8ee9fd1e3393c135c6829bca33452b3ab1c8a02367bff224eaf4bbfaa10b7e06f54c1e3d6175d36821f1670e39c158e9fe689bb0833bbac750045bb150bc03c36a3d70bc25608294e4c50122494c7bce7df8a70c0d6f8a44fcd4a1368a18c29b8e9ae751fe72451a387cdf6522e1ac0cbe2fe7d6108c7f024fee4a85c06cfc01f855d176e752695da64e699b11ff97a84cc6d6e47047add804ad7977a25b9220b1567016 + +SHAAlg = SHA256 +Msg = ddd980a7129e3e856cf069dd1718b8daa03d45800a2b3e921e53ddb302129acb0d369facdabe7cf69be11c37b052f75779c38a3468a804895a3d431427cafef877254460d87925650e47af32aaaa1c65dfdf49b990046ae2ad20fdb9c064fc99c3b15709355aa19b6d2a09142da98dcc7a9b6a58abcad767c105f2eaf669fb78 +S = 1472a8d64f3b8018ce158d27d8507e711177b18d0715af9be5dfd75d93aca07e770d621af46fab2e23371538e00c6241bc64a22c01cb7756446a6ebd451f22397f8dbd6dcba46eb1a1aee70c5edecca9231c50c0d585ab7b1ed7b157e0fbbfe9b1038e7096fbb74b6e7af816dad0bae36e095a93a91ea4050b96799a609d86117b9b92e03e3ee4c9fe9cc460340f6daf99856278fcf411c70208c1f50187b3088e8b708c0f85f99140faaff238fe0f8b6e870eb36b97a01a32145297b512926dc1f08da95d796c8bda9660b42fe6ef09c4e6994947cec7219a17c228cf2fda45bf00360382a7cbfb03baca75fd4d1957740dab20b901e471b8adeabfbca51d2cd384a6bb7c6de7491e008f50b9dc80490ec012b614756f2f448968b883f7a7ef4d4020a355ea26a569e2825748648d70608917842e42b6590eb284ad14d0aefd57a7e532587391b5b527491089c27b293a2ff0b9e3f433900b1214fee2a3e0d39105d6049b3409080c6f40f857e4b475ca505d319a43dd915ff48d840ad89f09 + +SHAAlg = SHA384 +Msg = 692acaaf5e277cdd4b3fdc0a1ff1785bfd28a3a8ec1bc97fd072ff6c99aade77baba92efdcf72e66d43542fdd32fb0e2dd29bb167dd36174b671ebef3c39c21be5fc84ef5a0957c9124f7eb281c12ae38cff9289413245c6c537bff88d013b3dd138c9373e26a00cecd4b5b18f708d69f1f24f88a0001d7de30ea40ff3c9f2e7 +S = 3f90aeabfa9a5f00e241f3f65dfe61baf67c1356353042c3566edacb11c7649737e5adf94cfb05f2619aecc8895db45190fbdf35dab01144e207b6f0923927a6148d3f16eaad05e73bccb562dc087e2d82db3dce130a83e8303bd7c3447b3ae4d3700d4763ba6981d82618ac82a6e66423f294781a59b20cc978c79e2d5c103bfb9d47119294c3c85b1d3c45a36897d42e183514cc8edbbfa1be9ef17b78280b5b6214dad79d60db057f22506515b6843ce7d4dd6bd861a889b36164c325147baeed714d7a3f55ae51ef6e6d4ae9e862d677caba1a2df369c23d3ffe33dd42fe707e1fd8ba6283aaa0b570353b48a8e39ff72a09f700e024150ce87c044a3ec745b212ae81aa5743b981a8bb95deb6b3e15c2487f7900178d5840f8e794662706dcdb19bc0bdd56cb7fdf0e21d10b03adac41b749f31bd3e7c4d07d5d4ec8e79d424812b6e83f1c7b59779e58029f9b07da3e77795fcff6ae8bb098b1c00d1d2a5bc0cb005ef3d8aab63ddd883d38bacdc64307e911c6e51946744f361fe978d + +SHAAlg = SHA384 +Msg = d69a51973ae16bbd9f61138644b78cf7a7b36c183d46f5fa65a1a1f79f9bff3cf953be85cb170728a485115584f0ef9c4c06acaf72af996af938e610a1b070d85b92daa8ffa5df204121e6dae213d7f023022ebf7fd34eeb99ea17a47492ba27e29fcc873f529aad5e7cbd9dc4e6eefc14f11bcfcb7aba862d005d3980098631 +S = 09ac71e41ce13b20469056dbe42b2637fab00b87c479ef33b6a3fd256c5f9495a5f3b0c87ec02aa3726ab2c52fb8203d6eb1866f1e449a8100726de22b0ab29e7c79640c356b1ce0f81f55f756383490a2e5d95e8a28929af92cdf4e3cf6dfc0e2925a61b2448400298e395cdbec5c698cdb0cb47783d2d598ede53f83088c70a9bb52a09b4d1961f05c8b7eee7d5a7a6fe11ee4c490bad697204bcd76eba960d020baa46ef0d97d04488b82a2276d2a4a40ad538af6cce94167ed014c88f61152a90aa7f1f24c7dd3093a3e24df1bb7bc90fe98a45afef010dca2708e21310bb49dcbd2b6d0188844cd508cd2365b6fb0c26bdb03f5f6a8fce2a2f1e5627c0e6eac64030eb57d28e564d826a528a458a694c9af9698089a8b27b3efbcb98672501322573a5c738734ee8dd0061cb93749e164d1cefd28120692228b9ea64f71d7697a9a3aac4d7df67a580fd796594da3971526c05da5dd7fce6b8ea166c092d2a883642ad998e2be9e319bc8d667703c64e226fb252879e55633ae7d56757b + +SHAAlg = SHA384 +Msg = 764e2f04099b72f6420340bba40fca537ce376190ccd27f5e91ebed4a239e155a2e9fbc558f8834e95fd826b35754f9f01159d67d45fb86dfd740cfee529e7bef25c809baa8937ff1c981e4a7bf9b97f0df3023d4339b0f22abfb94b02cb16ef2b4fc66c49761571a07d1e3fc0c48f5a6725ac84a38497eb37a7cea24048f54e +S = 53fb5625091ca2d523fc7a25826f9be41edc091217cd2fb04716a53efff7ffb90abb41520b1405f7d3c222c73ec9a55d13bfd73570afcdcc5e5ca8fcdaaae5d936db032afdaea1d1cb10341f98f8884432d0ba6952c58d0c3ad6570dc72d345cb51d68b6f8e0b9404d945cd3d74c253751bd583159efda3e38ce7b4de42c860bccb14c329c76fa8a85e441b001e2f3018ba9225caa7b70c91303dd5596ab079ed672f8d6532f04df589249f473ecb107dc296ab2ce3c9d5ef7402c821a655bb15ed568d50a42de56bb3e5297f8350810297c9a7677b3755fab437ba61dba0dacdd454e5e4fc4caf4cd425614a0272d070b55661aa5a0c070bdc4e7444dfac54ce2a22bec280d2a5a4295abead492955c56ed16ecd705041b5c4a5d6c1a0cb615d2d19000c60f8bbba87f48408a9841569fa6b0836e4fc757c643f0455f2d8b9d46d9c86c5d0f94201adc3ab2b7ddf7d828da6c5e0cb5f0eeb76a1df3cfc8a02131459059be9bef9af65c61a8029bd9dd948aa8118fd63face9a9e3d8d6da92e2 + +SHAAlg = SHA384 +Msg = db81bfe8769be93c3f30a0f2c8d537e217c605d95acfb798d66cea1f212ffa2b916214fdf4ee935d817b89df0fd99b65859e13e59211306c9e47c063008cf11271056562c09384e7c8f9161da04211f2115daf854d0bc42eddfb4fbedc324f0863b1d8a0445265e2fbf47036e1d74093a3490342f3831ce57dcebeb71deaba15 +S = 42dc91722a4f2047055aadc2bf7f7e66de4c95f2e6b527f7e24a16fa2e95c2c61eda581eeaac72ae5dd2e096b89aadc0309d9d102cf113ffc753b800837cc8b26cd1b1668bd047da8e2ec05654d7e16866daf66b886454c06de8617815e3652c5185e7f59dd98fd9fed066a23174143f4ab238744b677d52b6df4f5abfcb12261146424c2bfe033ca4da22ab28f9fc0d0abdd8320f9e2d13739bf5854b73417b16c58cee456402e0ecaa055c4c2f76b280323afc1ac9b665d859a35943b87e3e5bbad620bc461f49c1cc603f23d442cc87ffbb03aa0d1680e2556a1eaf49063620fdc9b1c81cea48f7d879dac240e29acfddc47449e0d2fc0ac32ba77d9b089d7b1d68f35d524ac1c64aa580d43bca3ab53d4b989705449b18c5565167595a8bba0ee7ef7e9c5644bff5a1ca8ab7105a2db7b561323760fe7a05f3d07d4f76f3fdffc1424092d9a54e9171ed478c61310f3cece7b668bb2b859ac2a76e8ce6c80a7d62feb854d724fc7da4a37f3a7b4540bea45c86e43f7d819c3f4bfa910983 + +SHAAlg = SHA384 +Msg = c5e4925abcd76fde1f1f85183da1afc7eaac92491a3ad404ae7389048d73eee5f74d5af416507191d6899bd8f788b58061670602b70974fe2ea0f7dba0724fafdcdcf25e419749058b3a1b99ec004acb5fccbd2f396a9d9e0018c4d98145726e1d9842e064345d02e53beea44390d6718ce2a018c7e6b7aacce3d6435974c1ed +S = 5468a3e3c9e808032742767acb41a67511580c4a8244e97d2ac946deb6e2caf989476461969b0f43fd1725f657248235cca17b633ea64a92fd76e1b6275cf2729d488c4a4257452be32ddf265e1edf722f50ada027365cb691ca51d864168862428de717eb2965d3562c64afeeaa8060f893eb400e8945c8c727e2b1652894221346dc3102dfc809c8e477a8570806e2054db3da7982879b497f22a18bec250874ca5925decf26b63227c948401ba7d15e3e79106d2a73383c381710d1b750fe8288d2d80e003385f2e2829cf4a6823eb0d949681c0843c4b2c582fc8b62866405cf8e51c8a30627f5f4b9ef8a4f5221fa89b052152044bedd9961fb45d0adde68928f69cbdc6b68c37e3cdeebaefea020320211642fa1df95d24a229eb64cbd5b2cb21eebf6313b698cda79c89779a345534663fa2bb682541245715248abb1175f4f5afebecbcc67e991513846ab49bf3f61b5d9126885ec4546177002695a0a7fc75c0bcc5b97241ec927ff4390013f65f6d69deee8aee83da19b72fd2b76 + +SHAAlg = SHA384 +Msg = 2259ae2cedec5e26231c927d87f6353e8387317f62423de8bfa2f6733d10326f790691cb3d755591f76473b169dae900a1ff53802c7eb9e2872dac49d6f09151d8db3c501b96c1dc6c06868d92299d033c42512b3737ffbfe437280cea9fc3f8281fd843ee194a0d6c49f5996aabf8503a995409eb34b787c0069243e0e6716c +S = 7b803da935de10f86396c225b26b7aa59df2b380a28c492412ff034643f68b8a87198b4a6ac1bfae5fb6748a5cd09662a1beceb1c211cdb3a602362d9534ffc9245c2e3f29a134ae7a88fbf8ebd11bddaa09177a0abe555e6ceee27034bbec2547762f78a3ad33d17c2977b2767fba71eedc17e6005f00f6a87b20858e75af034ebe038ec827eaff4be00c1dbadeffee253a05b1a2640cc07f8e49efd275e55854d45467fa8a7e7f76cd9f2b8e3bb111eb8eb81d62129e8f9cb0a443d9979a3d90405fd1f98f091444bcc7b5ab03d26b0eb12a968130a4faca138e9ce20152006c1111edd144c39860cde182aba9d0cd9a1e526dd2161580cc4deee804033090b68024e68228dadaae67335e5490b9f86223f16595eb5febfc8a397b25e9aa909d6fd7deeab19ffd0b96a14fc6db33fb806c011e6ff3d2ca72e8d02f2811790a67b1ffb4d8d43908360842ff5248dd5513602ba4dafa39ebae5bbb806eb8d0fd1af38369babf313779662d82941e5d8fea3749e3e9bdd889ffc14b9c2fdfdb96 + +SHAAlg = SHA384 +Msg = 121b994114ad5bd70115ccbed82cf9251d2fb6da7407d8b26ecea52ca38e8951014c0bde6345fea56577fc31776310a93112b3f6e756fa287c520d167b3cdb4563620c0c436b37f587e0566512eb77808d5eb447fef664039ce293e7e27fb0f1e2668611dca86e8d0f58c2a4cf4a9472d81ba013e271800b75841fe5ffde701b +S = 5e3e7fd47d0495b0d4b54bda882eb46e87a5dfccce73a8ca21a94c38d5fb784d5a375be8d9ecfca373e26934becfe1aa713e2a498e8664019534fe58a8ad8b64dc691a2c225b1111251f860cc0358e3c4e676c47820cb4a515f148f69dcfa9c42ad56bdb975d786597a3759c0fd57303dbfeae96ca9b57a926734dc3229df5d57be1ca6f9b4d8ead9143c0720a08c8dcbe477a432672cea26dc0bd29de1fd8cbb9f423a759a326b1697777933314679be6b9d230311e0e0b8ba8661e7003c7cbfb9e8872f9f40a44d30d128348ce948006075b1ae0abc3c62edb3285a12cc21b030cbc99ba38201985241cc5051664675648e57cc54ac51127159daaee5a1a8e659d87dd5980af8a1aa97adbfa50bd9b045f6f605d3a1e56945cfc331fff81e53693edd6d20faacc930313fab48a27031fa925ce101a9628d7b14844f16184aee0504d079a3f82402f46859c5f24bf15580e62e67ba4349f11f3bc26018466bc2e4fb89f640dc882275fba95f5496b1aff5b56e077cec47e31597bb313ce0cd4 + +SHAAlg = SHA384 +Msg = 7e11887dbd16731240076dfb4401b3cf14ed166d224aade3562dc78ea6852383e7a4642ee2fbbf39ab25f7af2e288b620bf72e8aa43b77ae7352dac8a298d7a4d5e671894b59e21b25558d8005c934c2dbb46b74fce84c99750e6dc19eea0f75f2e098d51db74480579e17b4f16c16b72d2cb67553d9956a016668c2c30134bf +S = 7fc082938706539b7e998874f9b1daeb6abd62c2ddc948d2ff7ba219b2b1233515b6513f49032c4cadedb19583d6a069368b0cd6349365671aeb41c127304b417a84a38f338c5994b45a4d031cad0565a9eb75a3ed297971111a5b848139766794cf229bf3da152c3da0966ca4f0670c6a42fec986852e2c15a8a20e551669b089821906798b6a93af269ad493fdea733611bbcafca4a52078f9837da0806a63f07456d165033be37efdc5215ee97814f9caf217733d107d67d5e43649cc74925d022bdf3e038682134ccde54ddcc5761bb9b8225c02ea1cd8a25dde40b0331dccb5f39c12d319afdd247aefbff970dc2d2fe5077b74c1d8a52e89ba54be60d4eb83ef11fae03193a7ab730f8bc885fa779f1e0baa120aeb421c9a6500107db19db74f40064ff26bec7e6678c33a3660c56461340d3276acd76e28047820db6dd0f400ede21575b3569ccdfb8d20dd94d358b47da7e1a4b7350ffc5cafb1e39f2279e644c285c759223bffb14c339a9ce04650e426c6d7a58a227f1512b221d7 + +SHAAlg = SHA384 +Msg = 4a75703e08bf48d03e93a377602c225fb53df703a32b4afb2d79db14ba84e8a618705122c062faeb5cef716786d5d155d3e9e661105191f5cbf36e53162db5e187c75ec3832689afbcc21cfdf9daaefe1666a48f4b4d99eeb1d804cc016614a39f62df49d873bcc668f2ed6340a18203869a79b6dc852a8ce50ee3a70597cf94 +S = 05b6896c8c0d0a86667152f461353d20ce3baecea9037e37a91d2b49ee26da9a47ff63473f1971c2a092c0e36fb47810cf89aeabaadae65fa4a630aa7be2f6d6ad9d81ae1f5d676b25b4dbe7af6eb2f172183175d6999e04ffad0f7afa4108422cbba55737443c99605b062a265d97d1a1df7ef456c0d643c343bf493c2c813d9c2ba458f815d9c58fbaa95e2e183a161499b9ec596f6871c51ecd62e61c6fa3bf76129ae9341099e592a1be475e7cf55ccc00a36ea11388d0f8c4ece54fff6ad5e2bc004e5535d5a62eae969e8467972db519aee500ea1adf3348f8a43a05ed63c0a20231abc6feb0088d6d148c6b2e86a20f94b9534f8b0f35295aace50cf7e87d6f7232f6416ec1d28048b8901068ddd01ddda839b763b75a5d8393b648e3ab7366b06e6500396b116638de92343b8b273317af88a8eea26e6ad95b10bf7d30ab0474e918c129ec124284dc2374e2093001642ddfb7402586ac98c9a325c450d147e76164f946ebf3d387a4fd3cb1665cdccdf8f00291059be3d0fcb4039b + +SHAAlg = SHA384 +Msg = 906f3b4e9d4ce0ef50b0771c31185c5410257d5ee9ee5f3c0b9b625b7930450c91a6ec38eb40614e841c1a811c097a31dc9899a63c76480424f8507b51f8fbbffbe0d6b8b504b47a9435f67793920af336a232b96ea0870dbd163de19aae284c17447f37c13fe15ac8229567605e1684666bcfff4716233d1e1db0f41cf9d59a +S = 5e15887c6810a9711b1d4bb566d4a50e057cbdb82f3371cbc32cfc98fa0044bee9565ba73cbc36cfd91f12ed7287146804d0688eb5300a68e3fd661c68eca1986babd7820a4ce56172781d6774f163f6c62f23c89ef093c1ff67f7181ce59e006319d0d15b5704e26ee1165222880c26521dcde3291a6d058f283cd11443747441ce8f39dc8ef662f6b40d641952c255addc8e67561c03b17bc9a74a2bcdbc3085010ae87a777e01446799a0856fe5b58e63d27f6ffe657cd9b091e0561a95a52a2b5e9981aa8ba3670c2c44699644aeb77b819360b767647d46bd39fe72d390d0eecab38961ad678acbe2160906fc9f072ad9695cb0af854d03e17fc1999b38d5e708e304206ea4e7a53bc7f1aa238ed2a9898d74d35a644e92f486cb0fef8ae74682a806bb86a3843d0451bb565d299e053bd458b8f67644ea6300e8cf0e4eb1a3ded0be00fe340d40fd115730a4b54faf5655969d744d5b4ffbf5afcd44a54fa8722ed0c1b90bcb48c4a7c4fea2a54df996f28c444964a2ccd323f28f218b + +SHAAlg = SHA512 +Msg = e990c8835f18b18562323ba5096a4e7b99bd84899e5cdd1f3badb47cbf93f13678ef81dccc6703d98566c49b6d63eef51b67fcc20cc971ccf63ccaec580db17256a573c6c455b4508153629606ffe7a43e6ba3b1991b99ff5c0968033bec7ec629ba888b6f6c2cb2fb01fbdcfbc5a150abd35f9e6bd9bc82151b770a8dbbbffb +S = 607b7731ecb232f9b8e9ea03be28cc1e948acc3ec12a1222ba0f63935440c3effeaf460d7066d260d174d0ed18a9193550000c2fa0119712fb1ab1e27b4e6f5f84be9b63a1ede17a01174060e2d9e46121cc5d10515a342a26649539341eb1b44b82e346a0102e7ca45be3149b5f1444bd7fdf43da441c59deb37da9a223bcd7a8244237bb5404ea532eb470e80891c0fe9403d12734100284e99cfd96de2ab4058529d91bf348c6cbdb7fcfeea3f9925e93efd6adb3ef6946008738f4577a49c42ac0203a2d982fd77cb421ae030b81b97dd04490605179626903471cf68835dd5e4ac41acfe54e048878df89db9c2de5f1e822266c325e0be0991c7f18cd3de4b2110e14f56100e45f8ba19edf917150c2074f379293f73cb587ff77ad63e4cbec9eeaed77ca90261b2813ae8e6533b09b223a68abe2beeec888088ff91fea5c63de3b55238aef018c368f98651572bc7b8cf3d14c15b24bb5534ae07a6c4c9d5ecd0b86961b550859036ba6fa8e50d06228d89bcc943581b26e302795d1e3 + +SHAAlg = SHA512 +Msg = 31912f498eb746a9bc7e38362f1bbdd7fce225ac98fe3e59e26478a2640a4739d653c9d3e4cea9813221433e9c4008c4c2e324a5c4365f964ad2410ec8ec7a1000cc8144c8817a4d0dd45d57187a55ef108e6618c03e539b9bc4bf9efd989278b4e39ec4bf3783b4557ecfa92a316a00edcb322e157ce20fdd21387b8d74571b +S = 61e8b413f7f731fd44c145d61fadf49de1cb1467ca6d81fbc9ebd5b73faebe4232a89c597696537de164a38d597362d68e19d439a5716eabc1c2fd6b2d224ffb63fdac8c689275ed604a12e96126d85e7172ffc4090e45118c5af9a837ad66e0762d42cd7c53ed9094a09eb1963baf6464c1ac9accabf1ae581817f659169ac539fd0b5109807a48e8adc3c8e3f8914d1990501cd5200c4cac4bbc02e23f9b84dbc7030a11db51096aebbd8f3ef852ca779a7f91221831272cbb78d9955de5c64d66583bde19ae2b04aa50b2a7ebecb51aba1f6e740d94ef0d7f0108aaafec40dd31c6ec84c0c55dfd372dea5c57fd50229207faf61170da637009f2fdd89183af61d90e1399d6ae7043d2807868ee56a4d917925e2098420c2f4bdad36bb925c3c7aa21ffb87dcd2cc3d58fc05bf74b7569eab03a179b19b5fcc7991881ec5ecdba3170b945a6927afd7c4d2e52db7a1d711b5cdfab39ede5da14398c257897d5f6de449390eabc9d974c44f9c7f119349e2c61546c75274a2fc8dc55ed98e4 + +SHAAlg = SHA512 +Msg = 11281a5370f24f3b5a84e5d9a66ef95e0e92bcced6332fb4af4f2a13da2fa39f903c2d2da214bf695dddb7c7b0da1ebc913b2e2d9c3a1128fd63ecd291331ca048e5c0cace8977fd6a566b5126418e7a30cf234280278137bb6b13a05748a4b601ccd9113b78ff614a97075e4fcecf02b4f3a4f5c9220449af0ea8677696c249 +S = 16a6f2feed2842c1eea43470a5d79892600103356d049ca09375a5e8f2c4753206af5c94e4367f5f331fb7ef6c6543401f54863e3ee184d6a53208c1ca5322c4d0f3fe001efea489b4b35674432b3bf9abfe3189f9efe3b2b8112b558bc1ae96300ae6a9434d6f240226661fe60ca6024df73b989fd4a115882189939cab1f532ee9b6823aa7ba21eb6160331ddf196aadebd2c76b34df96cd52534681df1b8673f7aafd66a30b7644eddf4fd80a2f36ce1870d0cb678e9ef73e012e84509e1a7fc94910cda128e6267ec974011e3118de55b93637dec73d11af022bf524414d7fd7d8d15c6bffc026d938669b94cc3b4c9b19c3da8613f71d01c7b0a2adf31e20f272f23e42b2afcc7a6142ee7c22e2c085c80982de3876fb73b446fdd8c9110d2629cd6cb67be9afdf35bf42e561fe7c8ee4b5cc6d9c0cf454865bfb6ca9eb626dab135c73fc6229bf2397c1585853963f4d051564d92dafb1a0fe5f28d63a2e2d3c830aaab086e4ee2a17005586333ae0365ce1f750aada16b6275645b848 + +SHAAlg = SHA512 +Msg = 6b03029b416d40b1d4790cbd9f88d6c0b42f69a953831dbebb944e3e40370e459e0917ef8db003c09564c04424af3ef2de706a5634266070386bdc57afbff22168870007cd55e0c5b86a6240887af96b73afb46b1ef070fa6a624d09912f5ea97387a52b2ae53e86e494dafaf2716ff31cf22e303867b624fb80879d0e10b9a3 +S = 9950ab6b10c12445a5f9d6fb6bd95a64e6d533e615b6bb75b08a4e881a3f8f35e477b4f5852bf412c6782eb98ea307a20545e9008894a70067d5d2b4b1281a73118549d9df23739569c51f0ca45b8e8cf9b7a9e2fd4494ce39cf9535ca7ec34ee5d9c18269248d1568f84a825bb00a10ce8802d83c8e6590e3c58c9dacb28bc625d590211c34f0a13c1ec1538bbaf2a2b03ed76b4f2a5f18c16c763ece6968267b982d0bacf8fcac6dd40e831afddd4925494b15ca5e3641217bc6ee1c433720da77a1370a9278d41ce83ed37fa19eac551b5c77be81907437ab5266f17ab9203758501afec5bd2d85180eb79fac88a5bc587e59c06000669de90d678d7021eb5933890491cc8e8d23f300b0d854855d6ed7b885e317e6e62683ec55ad1c4c9227434a4d29b75af133617c1b0eba21a7842a2d80834452f19e9e92e0434637861251383cde9a0c0fc26579913e754b0f87ee51645a7d4a1fab3567e84abef0b7574bfc68026bf9f05f2df489f3fdc2a4cd20e2f1308b81ba2dfacfe8de561db5 + +SHAAlg = SHA512 +Msg = d3aff01d77b9346e723e8422aadc156b18fbc18e79b057eb46e23638e7ab1a0d240035a5dc9582e3f9fb5693a30b38f3b488f2716c00e8b767f3a9e5cb38c41dc69bdd4538cbff08ac74341e8da853ce97831ab18b0f7cb827653c705515bb85a3c80f86f32454e773f0474cd0791105a73460d43da4bcf76f7e1962ec0ca84d +S = 1a5fd5063e84687cdf77bdac3678d54602e24158bef07a5c2d14249c1c94297e3aaa27c239493bd95eeb4c29bbeaaddef65778ef029a6b946d2542ea5f56b7d97c68c0a2c25514caa82b9a1e85b3f8623ce552b9f90940247fc77fbf80ab8bc38a9b77c3f7056b5a256d7b7556120966c3eb7ed3d6d776fbde617bae0b94a2b8226cfa765ed49124755c5a72177a4dc5f140ffb191796249b8683af4679f3e697b18c5781bc6d39d460fb6ff5acc0d3ecce065dd1fb989f838dbb091ed3ecacc833eb530eade2e44a7668660aea0aef65d667b52869666ecfddade32ef2ad681b776639508184f3f2fd9147f5549ed8d294af3e0f8eb6cb686adefafb1d36b178727f9c2efcfce266cea740c280fd2df52d292e44916ae9b2bad98c062c94efdbf5221bcc15b8cb27e7ca1bcbd4f86ea75384d8a31ca4e8ce5c728f2f695e67f8ead13132b2dfe52f31a23c5c12a60b578c04fbe621f969fb0f1297d4ecbc86f41846a67e696ab715ff22c6b5c606d8ca29dfed16dd47b3f65ecaa7a5fe6bf6a + +SHAAlg = SHA512 +Msg = d66df3ad0a04d265252c2e1317a618931b4e47d23b94bbe016309f47e112749cac986c53e60414d7242d36db1e75feeafafa5b46ce11a8ef60f08c0230aa1f44b8614efff2b6800d1b857a32b7d07fafd5f8bc139433e455e63a18209442096e822e605835035e2c929cbfc1e89fe50731af32e295e3b63930770a4a15c27b40 +S = 0311eca80fc0c365322c5357f62f4a8ceff87e57db4e5dcccb9a4c2b6c8f4b69816075c946adeac2dcd14687272ddb7012579af9886a9ff1676e280cb8f67a74a665532c78b42e15b07979f8b3f2a5bc816e469049f923aef3cba369bf9fef89c5bacfa115e7a018795d7a92a7fb80007df1f23554b56b6423ef64075a28879894838cc48563148ba331b3ec70f7f005211915d96bb693ad3cfe336e7529b8f8f39fe848baaf110451d6ac6466766c135f5afe640942fadfac3e83cec312193d26249eb1f9964b387533d68037448057c437a69431d96a9e3e51970aa80c78e8c3718b87787efeda29f1dd9d532e7aab762d5f2b07eba40e7b5ee9e0977239e06042ed1faef869586e26b1cea1d217d1af912ced220164ab233817c387795cade4f88bfca0fbc53d6f3ba501770073089c965fd5844b1449abb74e382689b0d6cc067dd8d7aeea1c93171fb8118e22876ae09afaaed0ce2c26ca7021e05d8ce92004240460b52d679c7b4cd25c8ff9d7c134d56054b317c2ac3c703eed8c8477 + +SHAAlg = SHA512 +Msg = 17fd2024ff2b1dd822458a9defc78665a2d23c02d073128e4028230afda0f045a9c352ff14f2b44f0e907e4279c1d4c5a27181c5d1992e941ebdd88f87ba81fe40be253b4a98ef174732ad798d5b824879cada8b0560a3cf9daebbc92fb7a43d82f77f1fc8a438f77633fe8a531ef6b6cfe5309e9753da076602b3021e21c3cc +S = 1fc7e46de0b6d93008d813a642137f42b25a77a04e17d4788c71629b17baec3e1b35a8c8595877a17aaabea351ef69477ccedfa3bf8341e39d3e10622f39bf09cedde7a5d341178efb09df92e87a5fca95115fde58b8992c6bcca00b340557a4477b43d8d4352f72f5425460855b3afb291d9242b73524689e22799300fc556339d103252d31ee1e22f4bc974066553e172cb90a665782750036eb8c0536fde1966760520b13da0b27845adcbb72603472af8c9e6bf2fd920337f6fed49cda2c2cf5a0eaf14b9464c67ab53b2af9155e116226d9a2fad47c5e2b43dc477bac1f597992e51a9c1b045b76923c685fd4f25e3cd41b75aa45a3f4a3e2da1ba49aa792fc61ff8af114adba97abd2f63fbc80be7d005f81140ec5302f0753ecc4d3bcbf6bcb29be5d94a27711d18f7767479ef787484d965116a182815afca4d32ae4eab05c7f1a4d70bef17f0bbccc0a59fd0d80f1b4119f4fce97698b623d5df552d5131c9b830bd9b4f07e105fa870f1e406617461d0e3856c06d1e2261c9e8606 + +SHAAlg = SHA512 +Msg = 54c67c29e4e012fbf366a8fddc159a6ef9b421ef7199ca2d516e27bfdf35c4522b8a5c03e6284d0c77af4aa34ca5501f6ebadb5d595059620a3adf4159c41b3f89f48a361e10ea37ee60f3737b35425c802b9607caaa3ed549b3d25267d9225d988d6c8a339fd2c480020a3712d0586d578db9b66db061ce375f68bab17bc1f3 +S = 2ce6518f193451f457bb64c4a64aeb7643a622890ecb4225e6c0dfc69605cd6c858729238b1f9ba2e77013d79b024122ac76030e09e2b768cff15bea6dc1fe2577f2e41fb085cb61c308a1df502f4fea7c0aebf65c02098b4b83cf308c98817bd979f6ab9b364d7eab313652015f8d8ee087ed65020ec49d507d069473daba2b7cd9e87082659984951059dbc2e9fd92d2a12b8a848642a64f13c8a852301187692eee5df9936333392f843b19780a5abf630c18de8b2aa4b2d40f22e613529b2ba378c804335537337ab428d46e61fe003d73fdda780d2a4990977e8a69d0a3eb8778c37d68f315704ccc570654360c2a27c11bdd5e41b17f92498dc8afe8b4ae22b5df30a5ea849a78d68248113cf8f484e273e2004c1105e9eff726cd092cd7fd398f593ad325e63b1e176ecbf4564108702f786f220d1e075ce91c8593cb9f3e3045b8f116d04c6b43381c2be4df4d25b752afe7a2f0899fe49e5c8653228078ecf3709911530299c7ebecbc4f56c13194cee21796acd2e1ab753c3d6c03 + +SHAAlg = SHA512 +Msg = c0f7837938ca95e06d2baf1a62a3861d03f91011aea9315ff292970b97efe343de880938092af92c1e547fcce93367c140d0e6828b89356c83be7f1439ccfddc5a3f60c4b2436f83f05cf1d7a957cd199f81701442166f1777fc6d4999b1403dbd834fc63bff3e0d6aabcee0aaf8fe4da8727770dd3a268958b62b51be87f28f +S = 20f7c4a95f19581165309acf45dab893c715e09f16210e46613fc571856e3e3146e799465868fbb364fcd1fe3973e4535a79bfeeccb10695ee6d8f5a96c78b41631d2d6291441e7611d45f48c1e5ab8dbf540211f50d2df012b658fe68277134fb47529aea339e750c15267686a23982505758b50e4e34ae845ea3143038c1b251cd177aa25a996cf2791c749f2e4a289516052d0cfb40cf215ae00b503219a18097ff268cb8cc833700912d23054534a6317622f8b6c5d1764ec7248f9cfcd4a201a9a82b8b438305619377e621b41c92ce61ed6662af84d519f9ba519dece7d607a87787ba2d2198b5404735bb8ce1349493688dee1c8ad6c6c7d0ff116f45b9e032785901f5fefb1711740fce615b87f4e93c8abc0932c1346da005cc815a9a6d017a2b1614d1d996df8ce1b123b1ce5daea04d983fee05cdd6bfa05fe2fcf0e73b1663f36a41036a2ee67db924686eeed380341897c5f2b1c51a7f6f010554e5fa406383497f42260a31dc066cd0c1a2cbe4c061cdad0bbc226687245efc + +SHAAlg = SHA512 +Msg = 3207df80951d2172d9450ac9d686dcd56dcf1722c92ee24de542ac174ef313b82b6005767a1925759c8f70d114c920ea8c58d0ff188ce2ffbfe81e9b38d49ba0f192e3845673523e4f4bbf5b0a225f4ffc2ce50922fceeca8df49d361d0082ac8d84c1d3af927075f961409141fa60abc5359e676ee4d056564e721087df9083 +S = 45d1ee2b69f852b7f78a437c28499ceb5c68842e4cf7cd2c879dd2b0ae6243c8a38f62179f508801266a2d5d0f32d22f669abddd45f4dfe309ae6407ffdc965f1f68cef5741948ba297f3d8df7daa83bda95a82862ffa70bb5d497aff42d516c3a6fb4d26c19f7b33c1672a21a4574c46586a20bfd5ad8de495126e993942d25d87a23746026b3ef17605518bd35d51d09b1417c3c30ace1cd356287a66e86411bb3de934e2187e8b1557fd541c92cc52b193b978e6bfda5e93ee0655e111fd81d29cee7bb9eec6668715a241400dfc9822711c14f9478e4a008a88bd81b61b27e1dfc5b1b64fc659bcc20dd44d41e7f11bae6ea853ee700a06c54ec155ed2115098178e3fe9827d49394bfa4cb8b0ace65471ac96b6c80c8837799dac1c75345924d21177ebf4a7e9b6a3ea784003107a199c291e5f71f0757a7c70c6f61adeda5884901b131cbe431ead0a7fb78e61d9c1930d6bcc8175cf4baa047f49290d8559b57ae859fbdd90f088b1a413b0f3cbd4199fb1d0cd845e3ccdf7033470bf diff --git a/test/vectors/rsa_vectors/RSA4096-15_186-2.rsp b/test/vectors/rsa_vectors/RSA4096-15_186-2.rsp new file mode 100644 index 000000000..86f8fabf7 --- /dev/null +++ b/test/vectors/rsa_vectors/RSA4096-15_186-2.rsp @@ -0,0 +1,129 @@ +# CAVS 11.4 +# "SigGen PKCS#1 Ver 1.5" information +# Mod sizes selected: 4096 +# SHA Algorithm selected: SHA256 SHA384 SHA512 + +[mod = 4096] + +n = d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5 +e = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = 8b90a79fec955a7db26ba6737d3ed0455603d09b95c454f8013808eb3a97158954ace71ac52c341381463a45637b4853cfb07f699682da2b19d96cecb2c0e9214f74681560ba67def476108f1e7abbaf9e9cb3eabd0b3d0779e3d61ae2febdfbc40eb1f686e8fcc45223b0ba77e231410beef386d4088573697dcfdd94fa98ff +S = d058fc5d239b0f975fe10f3c3a6f36b0e9be32c9bd2e5c81d10d38c6d462bf08d70b1d8ce85cecbefa18f52672c9de7b152c93a89436c0eb5ede1aa78b17d07f3eecb628be117a23b5be3d5bdc48b6d50b864f4899129c3e917201963e063ed6ea428cf92b4ce358dcdde32f18e768edbf40c43caced67cdf97ca1133f8ba158b9b050ebff5bde22752b464e5740c8c6d990c44b291ddf652317a336ccef6e0e8a5f0811319c6d213fbf44ba637f8f32341eac526ea90638378956bbab749d75148d6a408b4f6c8974921bcd2274be693732e1ae3083d17fdc89653e4c22e846d32f9c18853ff03c7f3cc176175ebcccebcb760d995ab3f3c557b2b36b636382235729fc1dfbd88fa9c766daa351e0b0a4ae0d8ed63a01a45640361a0bb4056aae074e8ddf096e50bb2f49b64b20dfd475a1c5fd3860e5283bcf3dfabb952c201c0d7fecf79595267bd455f825b67f597238793b069512b65a5cf79a2fa6d2680e8004af7fbf65efdcf5912fc2d321c7b2bc969548c3da960cecd94631f75456d234ca3812a2ccad439a292dfde9fc98c1bc3e17262fdb0e167130fa8935efc84fab777d757f0dcebc76e85c8a4988bba63348af0c383a37b434ab600f80f295053e07cccc84575f8292645c2dbbf60616efa473767d47086710eb1fc2362e9784d07c314ba2d48a9ec4616e256ccc9dfb66d5444f5d0ede21c7bcf67c514683 + +SHAAlg = SHA256 +Msg = 7c5b1ab78792af899cf3edf237da4adea82ab4d4664a831ea76dac2b2d17373163ddf316a86c6891ebcc0d8d78e6bbce114462d64119fb0aed81bd112c09947d5972cfad66b218f1723caaf09e81be471db746738bd9def180ef00a3648f777685a41642666ea9f25bca2ce452b43b93f40aca73ed92161c873fdbab7eb0c865 +S = 8f8a6ec7cdf51e4cd4ff008e6e0086ee3925c1d1ccb7d5381f24ed7f5ba0bb466321b4ad6eb0e0e8064a73bc748f811b239228966bc3b6edffcc7ef669a6efaf80bb7391697533caaf68a78b15206747b4c26d76f2ce7d5df098d66ad9346aecfacb13b9e7ea32d5bc78ba9296f9319269ad382e4017960b2e2e448ddcb5964faa51395cd45a0738792861ea78791f36a5f353c6a7ccbf50b8dacdbfabc031806d603545b077b948f5e6a51269d8ced53257fbd2c9522184888f4dca8e45c41ab4c0100e0f0170a7fd52785e8b2d050e70735bfc5816733aea65de86dd4f385a208b8002b0e9463d3439c4424e0c828e66ed98476637d8ed82978770313a7f5b66cba976b9640e2c22805c1132dcfca2df0bfa54679c2d5ec6c5dd28e3438122d6fccb6282b9ee798357d4e3ae6b8398e6f2f067b8095b09f1cab886d8d4b2e34610a6a36cee34b1b0be034bac400f9a3daa6fb43a01a11b16ee98c74c55c37bee765fd5d5095b75b5caded753e3d51873ae74df873d2d837f8fc61a27e2f73413ee262e214ae27e80bab78ae779cf1eb7c71a4634068040fe37d32250aaa0ee061a1b9b095ecb78f57bac7258577a4ed86ef98023e2a88d33fdc07a2d14aee48f9ecf9983eed38b2f11268baf0c7382c3b02a8a2d41729b8598b8ae74eac63530c04420a03df1d973e594af5eb952296ac49ceb4b1a61a5aed094d72c251aa4 + +SHAAlg = SHA256 +Msg = 6a41d3cb08570bfd2a07f683fd9c4b8ffc786b49bfa1dc71137dfa4550dae9a5e731ce753b2c3f43b265f8290b71cff5f21dea88d1f72f7cea11fc0aa301182a202ceafb1745e966e01054fecc6c232bb8903d88e295eb89fb358d617dd28c233eb98f2746a9f2afdd8f74cae9942f797759ce119881fae06e71151386532bd7 +S = c232d219f65b663d5f7c64bc0f0f11c5264fdd1e71917bb1b25a37c505c649da3bb8a3a164788a783ab75f0eb1f22ed0f67877faf59d0e89bc731ae4a66b58ff149091066e5015e0c438e98cb5b270949ddba2abdfd3f38b443f0b82a3b4132b8b9ed677a2653b30e0cf381f87b2ae3390a898341b0bf29640a22b04fa94b37ffa6df62c352c8a47b04d35ed0d6f99c0fc9ea340dab3a84e6f653627605867b4b1dbd3d70d6ea218e9dff57020ef44e1afe6b665967de08a447811e98fcfc0b60a513ff18a8e03df63303ed05245d483887da73be1c6325a56a6d0309311ed2efc9c4ae46f6e1bf4ba243bb23b894195480379b20ce0287f4aa578f1e9d8d10ad6cf50de3d6b2e32c60305b4e33fed63fef8b9f03eaa5399e543a2675100a63b7b14b2d1eb3343556f84da005b5671ca09c9cc6b2d1c4928152b3cc67457b9a35beb82f1fe7e9fed1770b343c68a5ba1b6d6c839995a8e6c5da60c6039511467b05a8275eb3d32f39a72e00a17b2b094ffc5994aedbd80f1074e224f84dad99164a44ba911b7d7feb685411088129400f2f10adc606628bdc372b48eb81c4d5ae274fc9fa47427c2171628238edd00f1c897ceb0273e4fd539c8b1b5c43ff20150ae78a27b35992554cd62f88f66fb386514634ff419db192b61d7cde12c2a5a086fbfe4b2e7f49a206093be776e3e7d16d88743fa486f9224d04e5a8e5bc598 + +SHAAlg = SHA256 +Msg = 15c24ee3a9398f6e5e57c07a9eadbfbc583e11f85285d421c1baf4c21752a29c1cc50290409324c02f8936f2a740f83586e870c62843de34eff4f2c323fa3d0efd78e6f1feb79ea6856dd52ea1402ef3248631abf94f417fb7a5cd6d7512caebe16360cd8cace368888c06f835b24b3f58a0be6f6dafe34a3f54ed88b5a13079 +S = af4e570f2fd101a04035c61d550b6aae1afd7328ecafa0f73d3a81272e791eaddf0801c50aa2bf18e20323aff9fe8d44d32310586d66f6b88ff85f2a6e2ce84f41979ddf34620d097074d5fc8c5ddbcae26a2a027441ea508edbfe44e9e44d7b101a3600570da7409e0f62570b4d690ba7ae82a9af678d210d4c70b29b6526d35ee1bd528def9f63b2fdc6993dea732b8779cc6a1dda0a89ef30022486571f4b6235743626c99edbfed13b32122dd51ec45bedb2e876599ebca0553853e6ee32a818ff6bac03d4b774ee01d879f22b7f1f308b11e9b9e6e60717ee22bfd406a4005feb488bfd6d24cd18038848b5badf580c9fd1dd8b930823332c5e7ce85ccd1aa12345489d843c325979cf82147daefaae0d7bd5c251057ad0536ca43c2021baa421ea3fee0c0376d55e89136e95c713b182f8893bfc47f0b86a2fda14664c4e3063c05ce43ddd0b83a0ae792e07e3a7ad222f9975be8fc51b610ea3b127b59f7d88f43b45b9aafbae10f038f2ab22bff08b622997d34b12d69f5768352141d5560d915c08e216dbd93614410db1335d7c03ed2383ea467aa37c2161724e2c1d2f96bf082c9feee522edd849f49ce17afdfdaa16d2600d70484c26d17d1eaf1231afef056b650c8ddfafdcc93aba5538d2b032f477ba4043341a4db3b0c6a57aab586590eccaa8c349a68662c30b9ee727429c3ac4164190cf53cdddf78c91 + +SHAAlg = SHA256 +Msg = d10062df2fd6492a8e3ec9c1bb1a4b3e7d69de41826eceb59a0f7855237b5c6ec40f74e65f7bc57d402033539bbd99ab354b19ee6125b1f32e6c0f7ddfaaa7059bb502ba66d759c7502b62d4ec4a6acf0427a4ec8b38c1ead3d7c09901e70899bdbab4642e322e8e2527ff4c9809e53453c72643eaef2524f21633af707aa7b1 +S = 74805c6bb30998ca55ea3d61408ae96c4ca87219b22c4d32c653e67d4b96f641ce19f574712e18f17a4ee8c022ab7ede8e0a2e974e5dcf81e82eae3d3e935aad88f3f51a9d7a3136a7baf05cbe3c30cbcba28e7ffccbae8a607799f8efad1abc1ff876f9cb3becc475fd6ac8fddad9037c7cebf5a47b09688f51a51b48f087d6e7dcc6dae5584c535a07ec0022aa316d7e39272544baf17968a9951ea9c22474764d6e7d6a622ef5683f5ee47af6735744fb5908a9cfae7825875afac7686ffab3c42bcef73f850f8749c140c679e809ab1ed407aeff2853b03afd594d8521bdb55dce91f5340077322d81c92e6ebdd8be0ca001b69b444dc54ff4120d7f1f0bf5616061f7e3a99d6ac42a2f5e1b73d03c5ddee04740d793ae35b7fdac52154cd9dd0e78d1bcb5935be84c7104763f00c2b9a8bfee9d7f35ce2e62be17f56f9ac0d3645abfb379edfe4f295f2c5cd56412b895b204329c186f369330cb9645c5c50eaab1523d0296fc8325b3437898f7d3ce6e40a487f78a7e32a77323ea478201e5e1823ab899189e96e0319346f7262b524e0fc2cb949f6a275d69aff5574096c5f81c9c3129b53bb8a9836e7d788b51515913590cf422d7663545d192f03770d9eb9c838ebd6c141765a91135473c8915e2913374bf774d61b1143f10756a0ab61be6c200bf2a7096e7bbb96334b49b8de2544a584ed988e404910c4c059f + +SHAAlg = SHA256 +Msg = be8d5a3415984f55ee920a683297caf84840540e2a69a10dbf38d4db655b6f41cc90c5950b6bb396ed548b978ccf51e022002a511b6e11486f07ccc52e641ecc5d4f3f0b008289bd78b274ce0fccc440d27f01cd9ffa28ce7ef7a05b34f86fb416d0aedf1c663a9336b6ad55e3188de1ffc5c3cbdc974e66951038e59f9ec9c0 +S = cec601dd36bbf049cde7b7f2bad094aa17e0bc8858ac383d26412e0e17cf9786641fed6e221064ebdd2ba50fd2016b0b496f29701a6e5f1eaaf7fd2e0c9e7e87b60273bc94523fd8ada4b76f4ca8bc72430af4dee31a32c6f0e8af0d0e3cc5e87000ca77da5992e4edbfc0730055a6519e62ea8b1f1576dad86c389adab82f11d9c99ab68d102552a159181294f69750fdbbabbd95984db70e43a191bc20a35c68a2a613abda5497e4d31eb36638e845f4d4f4c86d119ac0eb870c095449802ed3137cec010df5f9380c2e19016b8bbccd117f6463be57122ce393ef6614f58eac82db37ffe1e7d4713c8cfd0d2b962823207efe73d93b6f5af0121b0e85b62be68ed498d0f574dc4bef93a33315d9a2ab0ea7017f4e95f56fdd89bc85f1cba96618114afbd3a1ffef32159e9fe0272c4e07e01c76fd23159a74ac715816a64531120d3a777e5ba48e303b4721540a55ed98c4f745c4bb1d414c94094e2be21db69a76f3206fd15f730e55be47e06606909b8bd95d63d32273171151630f5f184c767b5bd42c061e461d861a3aa6d028102757bc1136b4694a4216dd8fb6d8740192202e0fcf09d8e703e68278f4f0aafe1996409b787825343e1203946837c9c21fd6837d81e104a1be6034a372d0ded0fe340d26e07ab5633da3c8e12f9b4ed31093198a5511cf5b3c0dea04b564299737bca0b7bb94e7e5a0ab14d1238c14 + +SHAAlg = SHA256 +Msg = d7d91606f1ecf5576c6fd5c1528f398866590cb912da386aa1857443aed55d3edc33c9aac81958763c784caca6579a3cc8bd40fbb0d2daebeb4170bdf6e09394f593a80ca76e837b9a1938779b792d98718c747ecb955816767a361ad36a8fd789c25a3377329feeed1c41281b3c1c24c98e4f4b496cdb74aaf76e622fb9798e +S = 718082723f43869432433c910c2d400adaaaa40b9b3b251480a4f01dd001c31e93166aa8a45476c00c10188a538f8a533a5b601a2880957aed4c4bd69f68c08a3b86524cedb6fcb9bb46509ba39249953671dc6d1f9f04f219802be5c106d519573e16fd596c6734e173c524ab4d2304c73d9fb78f3496e8bb42f0bf0a275552312396b9b893b5fe3b5ef1c9fa8c22d1b9863ff0c0b4221a7ba91c1849ed2d571e68c5e2ebf1fc8942aff57b9fd78b1491c615717f1ec42d9ec0fe84100bbafa54e7d9f0ee48f18c5fe2dec2d02bc789772175d5c6f1fcb56588675f02356e8366cfeffb4e560e1e6d1867e93f02d4e68cdefdaca4e1122fa9c9b52b90286aab9c2d1357257870aa507bb7f94eecc3fb36319c3e7e34620a74c305ff1ab0cafc0198ff4e19f8c8cd5a1c6faded98bc2167ea92a3af157b9cdb4546ee3c2739b8dce011d3da83e9e13652755e79bfc6e28c45906f327b78a7e7ab9d24256cd036280ee4ac8930a36bce28ce8f060510c0d116da8900b6064440f02624ea31376ba87eac1562dbd61d1562448f3e720609ab614b477297a68d19d4f975b44bc402c4d86c53f3dc76052353ab228879be3b25f7acd93e52facdfb7f298886f0205ee8925ed45967dc12cc24677fae8f55f36a7b7715570b3f9e88b30e185fa68268d066075eee9f132526fb2cd50eaa75fbbc3e5660ba031db92dc7c4540020fa54 + +SHAAlg = SHA256 +Msg = 5e8e725d0c19527bb365f34977cdd39aee693fd8eb8dc7a79493eec5bbdb26346b0ffb9cc0ac8eebfcbe453ed8ebc10418b2106062f524d050b5840dc41e42327cc32d1fe62a4720358b7acab4d586265af23e129f4cf4e38f90324f1db2ab8bb93170b0259c67638455fab5b4950c48ddb031b44a9a1e2878aa5e556d9f4787 +S = 53c551c730cda7be2812bb9e2e13d8c849833b421dbefaf3bc0afb90f0c80cfd45abc383a0f38525b93d4051851e48c6faaeb8a912ce4b07e4d8a9ad374d065f3219aa0af0d9411ffeaa90d55d22194b4be2807eb44f891624b80ca2acf050d00a6dee14cc7653908f5a788441b246b89c7c84453e858191c19531ae674023636728fdcdc005ce72d51fddc954d01b19b9b62a922f2542d81832216efb8b4b0f8d75b38712ca50b29c599ea852a5466a776b47da0f16d509682faab2177ab14c46b0723000c70e45b610ac7625db6da98db2ac596233cca2c2a311f2d4abfc256ec93ff2b90d97fc196f01f1b51274e795962c5dc18818f4e888fe0450f7eab13e329589c7b260a9970711ddc7fd990ab061179480c054fad2433e66009af9fe5b33f2c07217ca031f39235f5c1670881b51c5e335b5c5f79f24833c1e60e6de778502b0ceda9c882d835bb2cc40639303d8be61294bf6752211017e9c26fa6def5b9529a31bcb3473ab3f48bc86b5361c79873bc7173f2bcd726a0babcd5a92dcfb4caacb9a9a5f0707a28b7ea80546f529690115642bd8e60afdd652f145f51ce14bd005de2813d1584850c6ade075284156ecc301541d38aad9303cf9275f3b9efb93736150041b8c7201464af14c9488a2c157a952c858a4512862e106404fe3aef9e61f118942a6f37e1bf119bce0cf364dc99b513017d2111baf77a476 + +SHAAlg = SHA256 +Msg = 10130471dc383f0a7871acb6d18743a430312f61bc8974ed41bdd5142f07f5fbe6dfbcfa306ffca90f47553eba525616e208e49139e6e023351b04a811850ef816db21bc182c68804388fc0918fd08e8b2c52b4f4ebd1d240a199654ed566b6a2871fa609b57c9b49b9c6abff36fa24328ceca4302f67417471e52bfca645478 +S = 636d07a32c64f2e3d3d2e23700206cc4c0e882c4154411f2aa54029fd33ff7bc060db61512a6338736b6c044a200bce79b70ed563811da93786da5b87083b6df7038e0ce49b791e35cc6fe36ffc517f4fce9ce55a2f926d66f8166e56c552faf485f0d0c241681f968d649df926fa83abd1fe017e19a470e562cfdb72551b5bfdf94d3ec07c1cd95963d436a2b4440293d95cd340618a1f5e26abf85980ff46f9112a45fc09bbac286de98ed8206fd52875350b4f57ae764952bcdb0bc22e4263f173a58bed2bf5edab12a80969b7f4d0d3223c9799ecce4d8052a008f483c59f01ec28b34a9f8864375a9d9ab7d1939c1f9baadceac17136c3d54edb316a02d7c8602e69fc35337a24926d9cd3a63b5b460c653c62c803a68d0b7244c8b542c7510203b794ba8b1478aad294c22c1cb82dbc2e1c46dccf1af4c024ec94b395c02d2d371386ae87e9d5cb0a3ef29aa66036216e07c571eb1f1ed5f18a1a4300e9ef7166877163eb49b680be0066ddaeec3477c7462c195c7707e745f9f511341851e812a760099a88590fd0922739018b9c0cfbf413912c7337fc5a5e617b5aec5eb2bfce56b6c040d337d52af7e0c2c34ed020e42c5a2ca802a51f04ec684826686911b0f81580520e397cab9c524d4a650bfb1213de0a425dfbbb27c824a919f9ace8e704c5743afc7f0c063b0407a9c78a2abd413adac3034d34396b2da53 + +SHAAlg = SHA256 +Msg = eec08f01fb4c104de953caf6ae000a9fb42a1bfa3629c839eee81cc5ed3c6c33ca749874fe328d4b8f790e04ec06b56418e434dc0b3be10156697241055304cec9fd63df575985180b5d5746d158bd504586d36b19e27a8cb73b1023288a7e06358378abcc6a009ba5282c23249e2a4d8239810f28c799c15b897ed41e89e1c2 +S = 946cdfecd27bb3b5447b66089fb08a17e840460fb34dfb55271908f811209193fcbe277f360b0c7f2a430adef93f1b30bd11ed2cca35da0c1444804eb9ef23b5753a52171cb3ab05e00dd853c18036e5dc268f52edb03de49ab9452b7c99f6b3dbb04b0e3292ff739e539885a2053523b83e93326e467c762c26fe4c44d6ea9c092e75130869cfa12f19cf8dd8177359c6caa663f33c43e44c58ae0a1fb7c8fdfa7e58ebe2c7807405022a9a1b7472fda86491e4f5fdcc87d71bf2b8cdcb6df183bf71371df5b3489fbae38d6a697a91dd5425d88555353ca65307ebebf8464d9dcd32fdf88eb29531d5a568edea1792da2d17150954bdeabfb3d0fe8f3b9bb7cafc48d4431526ac6e7d0bed958f2d2ef43a709bec9758398eb53a371f300a45b147680eb492383f44252ddcb62691b159532b3808c90c094c69a9f7130f4ba35e8a7cfb376b2a46012f32b643a3bfb62a696ec955183b4f857dfdbde81ec19c0c9ebd8659629637220b03e108b8c4efe771f0fc8625590d59101049c176dba62032f25115e0557d84d94b343a008e7d4211ad23fbd5d07eb3f58f09ee3f4605fdbc124677c53f4f3c93faa801139aa81a122e2cdd35215efc8046f475a11c51a124c1cce680fbf7d479ccb5236609bdbc45ecea5dc18c285d181a686655e32dd47793d84d7645d89f054e1cd8c1b06504918dbdd469d29a0222aee92cf2d44c + +SHAAlg = SHA384 +Msg = 7247df014b08f109b778c850bf0763e7026bf056b595ed32e8e38df20b975dfeb0882709931716a1d7651c0492c391368c6a1d50446dd71b34ebaedd56890973e71faaa06bb2d8a5f1a3bd1298250ddb52f4e8aee84502843ff80177d91526d39e76306fddc17d3e8e9a7321da161effdd721a18aa05b4968f734c659b24fe45 +S = 7f6726e4edfbc085332e7171c879954e35a34c223fbbda2cab55bd33f8f584e0ee722d294a79a334f33956110f04d8674e9a1f02bfd878ee0383381c8cd8997bb83b604c737220ae56e7875a3e65dca77ad47509b56a00a84058239721d7ca67eb03d2fb538bc37456a585c7491ff67dfc4bed1ac067efb6984246d69837c2b7a34dee6125fb4171b5732a23a9833251884280a3df5e219e6f84169d4b0b16236ebbcd68d3a94ab7378751030a2f0647dd61e0b26f075a5126b92b6029b8757596018e6f390fd9de0371a11c0d7ec3a62e2cf27fb020c1ad9874d7267debd953b90d75c0bc73964653f8ccfb3d80e951e6484d4ecd61a6a8885f4fea130cffc12dd4058c9a8e58600c5fef8458e5f185186ecd0874341b23a1a0d2138b4894ffd2e0e1aac7c0a23023c9f6144256fc88d2028eeb6e5ecc2e6724c789ef59008276e25ff2591a4c7b9d379c1ee3eb452d8e76e9df75bd83404d93343f0777d68ac1b9a29cd6003eece08cf2213fef5669336a1cbb5e17af34e0bb2250971b7d4f845c5a232361abb6acabce07031d8eace9861e8ae6af3b7cf6dad904ab65d288d27b482824cf9262b13527d38e04f302ec16559fdf05e198e9b2fea57cd2bdf8f6767ec138d6ad3fcab0888d4561efe41c2a1949e869a37b25b2e9c0307d7e7d4c822053e81d0a6a925d9cf8f1dee2d4ba78368abb4d8ca5d39164da55b47f5a + +SHAAlg = SHA384 +Msg = 3f1ad56f3073857039717eecd2bf9000f5773db9cb3879cb8479ae86861c0305cb46dea9846fa7c603b5d09bd7761288391df97ba73ca2accedcc48aad11edf4f8d10eadba053a0a3fe1abee317106f80175dffb886f80afeffae6a6cc5d0d818d606e631a5fc5a6b69c17cd26d9f4ba1627fa22b8f99a3dae7c1fc22a2beb12 +S = 1ee50009e32b7c4425299952250a26622b39a4e6b09645701025abaac727238a36137f8c719c62f5e54e26cb84533599d7acc86ecc7dc0e730a0fc3523607041e297504ae26a7b9b8457b84c6f47f1f207ac207509784ad70a2961ba1785453ca8628ce900fb26d3c5e81a6208d6947e79b1c07508ee131916af33f05053e4cb7a51c2cdbbd6fd75bada9f1005e56fa85a41ca785db71e0ba0eeda40b5212757a46b84ba497bc6621455640659b5e9e251ff029acff10788b93809142f77210c0e6cbc51f750dfaede151ecbc2cc43a000ff4e7006b677a91d4138ba01acb23ed186f6c047b268854306b5bc7a42878793be830060e1f585329ed00f1ddfe69a56b908e71a24b8a3c4085ecbcb21c0039799264f4d7aac0b1432a02476d7648b2a109fd63424bfe3fb0da4a19c3010bff5230e2846cbd2d51f7f2066728412521f6841f9724d3e66c5e99a767d9f1cd2aa5cb6a6e8eae4b5644e2c169a98239e8c6f4f62b83847024dd61f5a2a3f856d25d35ee0a1baa3311c42a0f501cf3db261af3227f46e75a6bf423d6a57f89b0ebec9c57ae717f02a85578b619275d14669323cf139ca9e8c37d647427fc9a970a5bc533d0b19018f95d8c9186945a827a8470a2bbed9c17e9f8141d64dbd5e8755ffd77f9287a17aa138c9c8b7697e95e3ba8d86cd27a3c989f06321e492d0e7dbd1f9308fab0befca1548be50a22b38 + +SHAAlg = SHA384 +Msg = 6e5f71b6e9fbb5ea92743004e2ebd344e8c6ba6349a654278599c5367b928828301659dfcc37521be5c6544900c5a89c551be65fd38b168a64e7169372813c86aae33b5800c04b79f32a84a812048b0bbfbb717f3331d82dc2fa585e60cb2190652fe1c88d7ce82b43068ac81f92c4b9ad0e236a707fe238263a523e4e577f6b +S = 47236d742e5305cca31ba94b07cd8f678ff6ba40cfb66d31e5e9305f309f4a5972b70b96694b5b652afbabe898efdebfc87596ea5569134d8a6bec9298e5d2cf71a30f57ac3f1a2155e163bd321fa6739a223ed300d92b177f266098068cfe88a27ded8f410bf9eb620b398e231c9b48b6fe0fd75bea2d80b3e23d54882c2fea63befc699beb404edc29bd6d5a52348a39c98b927cb54afdcca99a27c9205ba3f9256e1678b2e67d3f64f321836947e9098b1f16694b840c2dd7e0973650208a43334541001d072f620d14f3ae76e2d6851b5bbc1b151642b080b9b413a3a7b751617a2e70dd4481ea19c128969771c939eda2de30511794028a484a3b6b193bc03601f35a7a00d64f96f47ab9a84a43f770919013b395ffb54761ac64d48ed81609d2d2baae7cbb7efd19c67dbc5956c4636a7aa9e121d15244ce08fc4f73cc5b8e676beca4a8f7f81236c0984461f98ba3fe90e2bbf8f5cf4c6534358f8aea6f461335eb59c201f72836e127da4332d045b8e715e01fc8d6e8873115e3a75608a8c50fba1319121ee93417826c3df3edeaeabedcb62c22b757c708f502186367ca80d015d42932dde2b889e135012a7a4307d782c06ee7414e0a6188feec3f616b58647d783558eeae8f6851b4655f49387626ee6b9695759ace1ad889b753efb30c4f8af0a6cc492e02d1843a3e09ce3ab6554d9731e8c1e5d43ad3b71e7d + +SHAAlg = SHA384 +Msg = 413973543769eefd2713c24e100cfd6c8c562905a4a2c6eee813f80bc0457c70fd8ee0c5b384f4ef4bbf7cedd4e027ff9ad1c50efa4fb44874a69b0b02bc5b04a85143984d858482c99be4be3ffcb6a6ad7f095cc1e72067efae22a1c00113506d0b0393ac768500ca2f638bfa6a90a9ede75eb6a273f19480b1f496a21a8a9c +S = 62b3d624aac87816b595c6da931a6caaeb9a329a96000c8cafaab7bfbfc3740718692bccbff955a0353c6eaca1093b8524d5f3c59e784da8d573dd151ce4a9ddf5f327925f4dc64e736929d8cd41bd20bfad57ac31b85271b8c5a96e9ceb02e0a009b24a2f6669117bd86a552f4dd24561a7f62d894ed96b4844b933f4e02f76e1a6d98b6f1d5f3dba231ecd7cf0ac094d6b342886931177d76aff990036ec7dde988c1b20f471233c9fb0a38f417cdd8395c903706409ca96e215c4fb229053c86e2457a6c072a15649ac1c1ea6075a4bcd4dae3a1b238ae3d33cf178792c3d6bd56eda2a6ec4ab7130ce15e80399f77bb765719c1dcd50e4282f848beb3659a77633ad10bf279456bcde1c040a003524435ba86a6eb3ca40cd1ad1fa7167193c584c1487b67ee9ed3f6f6c4aca561fa1328c21e5c177fc9877401fc762c52fe448aa06b4bc5ea6631140f9543b6bc45b25e4196af5e45829255217ae534bd36ef52ce09bced4923768f13c415c3eea41ab767e38ec6c65f482083d5c30dc45333599cf4b332c675e3c5e0f16da059c195bffa5f87e1bccfeac1a7c58944a72e41e0b1ba2b978cb256d187e90435a570784bcc7680c0f791d4adf41eff3a87a05aa61238d0ad4abf710e3faa61ac76993f77e525f14112bf0db508b55f0e8c8de0d3c60d510dbebce13053f4ea207c3ef407ad4e353cbce07c73f932fd0693a + +SHAAlg = SHA384 +Msg = cb72fa190800bbd41a49acdda9dc6f5e085487de7687bc139d00c0f75fb0121ed2e02346896ab83016298faeccae45feca34775635d628c0c4006228822420b3cfae6c53a839c5992903c3ca509efe3404e92bc2563f88cf06ee7b3849eb75b5c9c41d69eed5abb75cbf9158bd1661aac05aeb4b6129a5e76cb2514e3c6dd9ca +S = b61fcbd9060adb9b4882356a3a624864264a2130bebad9688fc2efed8e8383610b7e5cbe5091a604200cb0d4bc90b3ea87aa5f1738932afa68b82770ccc29f56bb0e905885821df1f55bba01f03e49ddb776e962e43951b2e4bfcaa33dfc8cfa5053282d60ebd2140a9e76a097ca646350fa417bdb09988d8c18fb1add9b204ae6399a7885032335eed46769aee10bf901e81ee36d96ecdd8ca61561a1a28173170aa22462d54778c800a48835fb03d2029b790715ffcb1e8a126766e0320ac1e29fe03354a1e1e6605e2e32b27d2387d6eb35e15b92fe86812b829c24843a5778951888f9b82d62f2e980a8a763e076dca1efc044af51f184e8c7d4b0b2ccbb766ea531d414f7a01c27f711f0ba1cf865bb9d923ada18eec68e25cd42a2fd1b0e9a776b5a3ac3780548b6c85751c7704ad3dddf74ce0cfcd583903923d5cf8194b85d98477b880bbf8a12b4c922b7bfb98244cb016420f6f666a406278c69785869c0cd3fce37edcbeb18b6e32cdbb648bde83a5f349d0a61df9aecf07926056d9f58418c77eacbb538b472601a03b76c72d5c8fb588ff0ccc1d9fd926bd3f51e4989b1c120d4f0b6300491c81c5c106681c571329d0b6cc5190b35700f3937d2541752aaa4a31232a963da1ef4dac081d88817c634285824abcd84a1d7dcd88d0eb1035c9953272b4a9ed464962fbf04b289b7333f3345a178a9c2de62a6f8 + +SHAAlg = SHA384 +Msg = cc2962fadce79e25ffd2230167e359685ad755293528fda3b13b6d9265db9a288ce635600946d38fa8234a3ba7575e3175239dd2b92087ae9678f2542d55ad67649a64f5e6d2c3056c65de6f3a12d1f1ec99a37e72b871d95a59c8634d0a5232ddadb5627e71b8b0d101a84429fbfacf48a331d669d9024e8448b668cde1d1ae +S = 2369100f007fb2f7c44511996094e3baf0b833c457a25cca52852da351895cc1aa149ba2a1c478133fdbde6bdd78934cbac9ad5f3536537f592b9be623b38ab91d72e157e9603e2dae2c05cb4e24de38db95a6f1c78bd25217acddd04639febd08b32e39b72615f372dd8a529422684f773f2764943582daaa924b26622fd8964192a4ea4b76665ad7d8ca90b6f535171b4dd9d68d34fc86b62be6592630599f61eae9715804002b7061063f4d56a2e39c618ec0cf2e1af8fa06bab48af761e36374205c40d11dec239c180054ceca8979aa19f858409ea33b8e9c9d67647fd02f3c312220c41d40c086f7c4c3009e2c1c058d63a76ff5a885a2e990cd5dbbc24a0bad29a7e42b816910ee6ba5d4925965b45f1588facad78ce8df850f0e70ba83eb485ee3db12e6b8e26423b2c92ae76537837cf7def7e5ff3789bc0d2782b97d4f2546a62ddbf954f287c91ffa260090d3baaa50b5d4d04cc86ba47b91076872f34ddb99912bc6425f11c50f2fd43850a6afb76a84a11dd3ed680e86a2a7ce9031784fb5e62a8d8df3426df3f61de4b908a76abcfeb02164585086bac45892114328e3dcff423b519709afd49b460d2963ba79f20ce00b38eebdb4b942c74095b181330a0aeca5ef7f66846987a325defd0412be4b0df2773dd5314569a8584a1e7dd67a6458cac46d296c7fd8b8e155a74d072aa6c977bb5ff865d9bcdb28 + +SHAAlg = SHA384 +Msg = 3fba35335b2bd9a14032da98b11ba7d548ab4363b753a66a54a86148d51880e257d5b43ca616b248b87fd6fc7add0ca7d017f085d66234916db3429af37a2399518da0423b62a7d9b382f047cf3adf6dbd94adb80486c3f60c686668e1ab991834c93f6ca37881fc3a236fa1399aeace1709c124c8271a403caf14d82814aa06 +S = 8fe6e0d37cbc2187f7f5bdc53e56d71aaa6b246cf3b63d88644a130fe49727a2779863330b1463b3fb583176547c444b3b399f880c1d6c13c7e4f8334efad28979ccee440f265802f0c20dac7bbba45c1d0b7095924e02a1ae5a6f2e1d0820a81478ee11ac8c6be4d62f3143ba4c1afe5a1178734f5bdc8c3b43fd877397263166865997f0e798c3129cb3635405b85dc2e2c43b4ffc882e2d9284173de239f6eef893d7da0883f8a552a5755a1e9b95a854bdb831882a3f0ca3a8d5c00a15c2c3db53cea22bba9a5a95749a335b510c444605be6df3aa27cb070827faba753cbc97fb2e17638fda4a6cd39cb52a16b6265bd54dd7d70c7f157cb75b2bb481ff7187d4db341161845b9f9f110efc87d66bc49f8ff8cabc92b931c0d3e34e8a88021bc60380343a59c9900dd1b96458609c4a519ae0662502c514f36fa34004db83aa94fbc97c432ae320a06a186ad8e897a368f01881a9fd64189f84ae5237f23650abdbc2fe1cffde4eb6d1815f23da8339bfeb19a3f614a44c292b741faedc84d5614cbbe1c72076c88cfa8e8efe49b12b1750620306215794c6346a3a786013eb0c9cfc47112d337b87a542e2e68022625fafcd43695c9e4db6cdb3bf9929f3ef293fb4d34b013ad3389c3e52562755c11ff559ef8201038cca38662045360a7cb09c9623579b66be7034884a525508a2f3ecc2921731fc4e8205a7dc00e3 + +SHAAlg = SHA384 +Msg = c16d33b03f3070a88af282ad090ea51b75e70387dfd9d553f570cc7f81d8afc2329545da9f74752089c2ac5f60bb7fe6094592dcdfdfb8d4f8d45ba1a9b41f6c4c04c2044035477432d353db9bffd7788a1fef05a4d40a46692d4ce1b91a3070962372d52b592ccd0d8d3fc9c2c1f4f980dce3a936a214d0d1e265e6b8f12bf7 +S = 09b1d3d8fe2e575996773b74e3481734c14390725c8b0231f446a7bb0fae65678ae9254931e68828260ad3a0201fe93606405869f9cceca5ed7e365595e9c8965a3ec15fb7ef5091cf3270d2f817d16de2152bb74cc0ffd1fd758d3678809d0694054e5c7f8321f6a266ed91534126ebfceb6e102912acb6dabdf61154a238987d6a83c0140f4e16eafffea7091d25e5516e6985fc780f465c2136cd29935695f6e061824ef3b04e3fcdc43a6484ae96b5013cdb8f598317329c058b91f86d3c0e0497acea161eecdb2df768258f9ca461ec9b4b6009a557e3d717be4fbd200788a5c7267d052f156d2a6610ba2702e861b9ba6eae7dcac247758b8c8d8f3e33de76bd56b707020bcf744ede533923df96580638c924ea59c60b6bd244f00295300f47791d2ea7d3fa7dd580756e9189385e9a71d1e1b6a1ec0329bd993a4099fd50f1d4562eca6c7efe3cd56db68eb14b96fa981f9f43af9c8e348c101fd81b5e46812da7b21e1b99521248bfebdb6be773383a326aadaddd80e40f46f34f963ae364afbba2c04aa93fc392966355a3d8b81c516186d9f23dd2b84d9c5d54c1fc6730dddc213601a6fbdd7b93a21c9b8ecfb97f4bc80b4f6c9a92cee605aa4716d08f9c0fd42cf8cc9a8344b7924fb9f775d9ceedf9f8d651831c6263b3f9852afea6c27eceba78fc7285f4df7a67d1ea1fac3be07e3bfe351d6e2e285dbf1f + +SHAAlg = SHA384 +Msg = b2d61258c81edc56f85138a0404635574ec0160596380280a1ddfd12a8da17d661d7e36519c22bb203cfe233d0bd5a427f5cb8c2774ca405d30745edfd216c527ecf0fa414a7fad205a6c16ab477f90172f2a7d596e4f9b1d00e3411ba70ee87b0c77d5de254af7ca7dfbc8c15fc785dce8dcd861c88694c41fab4c5084c053d +S = 7b15a0ecd91f3a801962dd8c495b12567f2f6ef4e319bc1b7f05c79ad557fb121647b07a95bf0facf649be8b4f94303d7d1926af9ef26f8bd802d69683fd590ec9215ebd0526a4a50865c6bd494c18af20e0846e7be8419df19dfe482f26dd9d02766058a08648d0cfb273e4ffbe904f3bc9ffc92e74cd4b8e2669914d1d4d12802d971c92cade5f8e83f6bfc7b518fec3933fe2762dd79efc9656bd7f92ad2c046d4b7d9aec085d4a8ed4cb40b653df8d7d06b8b6f51d773375fe108bd4411cb773694c6f61bd7e416de0b4022ededcd2cad291408203e25a6bde32d4e5aaca0b2898a41639101479433ed34d80deaaf04d073bbd6d0b2c4b320caf5c3b7a1cf4e08256d1c907e91a5cf20e9461ccc39c973910abd1a3c9437d20bbefd8d00c6aa5a5feb6f778986fe8a644cb413020b945a8922da9362dc15bb7545d21bd50411558b57dcc16a19d195137cc678904700518be66d08968e1197dbe5d0c66e6d077145ce8641eaead2e6ea57b93063c412c339422ddcdd818cc725a290b5e49a6b1a64d83676b52fe61797a34556cbf95f0be375462ca72d6f596ac4749abbb446779aebe51a53b7a34cfa0b0e46e55707e1e651d4ae70bcd7c6d5328cdcaeef9e88fae9f6a9be609c064ba193329cd82bc3ded547899f2e8d426bcf10be8ff2d828fb4968005a73114ac001e8fb7f01ce3522fd46b566f1e5776539956dfa6 + +SHAAlg = SHA384 +Msg = fbb1affe25a7b28fe7427aa69a89cb87bc0fb68c940d63d319b30e3411c050767651a0c21df619579a0b7e805e467bc3228c2d5c8909e5ea007f2967e9defc5dfa166057df2918962784b2065d8fc571758378f16b7c43ab26cffabaa29d076a4ea8f6a7b36638b557542021e18d32f77d9b9d35828d0680534987168324f804 +S = 6960078bc7804d107316a6c4be9d9ffa5acded0052a2f252a01dddae1a4247e9341524643fbb2ebc936394a8521e97810fa81d14fad784c589e745de3724cc5c26020d8e21aff4d106fac224ffeec5094b60707528a46eed9019d2dcaaee7ef1af2aa414cb6f8b72e2365729baf82d3d8c1203edb3a74c06bbb2b55dcab021c1ff27ac3827f8786e422de82b35b245efeb0b47ef55ecdcc3094cc5f5c21da9cf816341b90fdc36f8ccd5fd8ff78e4aa8b10a4a9b038ac09ae0761c300fa498b051ae1f129e0f0aa1c0fec92c31609a8ac6c4ea19908c9e733d272842b1a97dcbafab516d9fe1592cd3a8f60180a9d12c033387c39e18edd4fa3cf0e85c3f021b12ae428718c69bc5a4d3d19b7f4d5b3ab89cf449c4f708db6a1e0123563d59bde0a92d45eaf652a8e4d39c0f4d18b08cf2fcd239983dac1b738a05f55c3c992fe8d297080c1dbed109378c2d5dd85e201d41f79943cfa08a8b0719e72a85d4e4a8935544722f1cb3bb4fd5ce6c21010d6197dfc2227bd74f89b93c82186d118aed142d9e1812b2b7d23d7001a327b49fb3b335fdcf6c6eee5f565f07337480ea8f6e38deb1a9633f4d4fb8d327f6c95372f7986a931c49148c982fca8584ecf6e57449453337ed4c95a4185c409320fd96fabfd3c37ee0fe686f20da2fa451f2f3baa2394bef7acbb06d0adbf60ff8baa37ed1b0eb3e322433139bcfcd80ec86 + +SHAAlg = SHA512 +Msg = 0aa7729d265c746f66b75246cff95b073cdf630253c85d2eb7192db67fe1b7b5e8b93c3e46efe6a041e3a1e83db02da71a0f71f51e7913b52f8c451b46b0e26c20fab9053751299ff0cfeed116693ad687d307912d9eacce30a4afcb6aa5dbf71c3292f9dfca64f4dd44e00a406ca91febf1cddf687f5302222813ced508cbde +S = b47ae7224429db36d6253878be84087faf59b5ff8896649afb2aeda0e02bf843b5c591945bf7d4dba0aa2b09a4a52ba358f4d80b5d6f97d8f636e03fe986f37b38a2e8297a48bca4ff3759d21ea6958af1ea7a08efbd61c0b82fde2def4264744b86cacf2603f5fc4828d2db7da947ba91058f704212bc6d1075112cf0dd9d8911f8dfc6f0cf5ad31987095b5d09e520b562af6223cb35dac8c0a6a302ba9e28f797b55299f36f82fe41692857ec7d73bc24604db0ace106a2e68f6d1f9f274cd5f56cd802a4f2683a013d2d3f6992bff578310d81fc1aae7a01a61b8a9df77b020ebfd191ab749c2e3b853f284bb76c83b86ad0978f760266ec5e497f2dbbfd73ebc693140406a0516765b83e4ca7a820fa44b9057af4b702c0069142e2933b7e9699ac099101c2c509b7825d8aef59a6432f38a4cc80e0b3c4034bb992ecce690d2e809627ac13a078b4f1a0855d6e63b2abdfe307653244aa9b23934ec898cffec904645407cae728fa6cd36f3f4a27a01be502df5f5ebd8a7f4d0d21a49086fcc2e44c62ad5441ad9fc73a15d5759eeb13483998792f126f40abbf9b775ae24545a11cdc842edd0f23955dfe752481fca340dbd75bb8902d3a73314ba112e0d4b0ffab3fa9a51697b5efe12e53f7e6ba7322f5194146ae2da2691d14884470a07ef37bd90cb2082c2ecdb1d92062fe2b1c808ec5c07dda12f66d9ab85983 + +SHAAlg = SHA512 +Msg = e853030dcd5fe68b1c59844a548f85a184a8801a182d6f1af34860c5becb6d1c7f73ed686d6fecdc031cd97653137f269d65373220255bd93027fd378908d968e36e89f0c691f85aa0fb1920158cd9cb96c0525b353541e9b767ba8bebbe1a783bcc3e6d81cff24f1c7eac1142027bd897423a5dff630993b18ffe8b8ef61794 +S = 9c1be5e857dda58ac54ad9a148038407ebea778650fb48b9345fcac30ac5d17bdda862bf384c2eacc957a20b5250769a3fe3d32f0f1e3e27574b657d3593c51000ed3633f7fc6e2c0ec7b4b148cf34b2f01c80fee1bfb23664ed5e5678ebbb2937921e9f976473325585ba49a7d4af055fb58e350a4d98a2b9e4e03f561b09390358df758fcd3af7aaaccdbeee96a7552877c0890ae435934d47cda981ada606bbe767c7f6a3904d7132ec5906edbb3d2f766f963aac2ff6dbd49986d3a5507666110392fc84bb82b40ad0df6b936059b9045eb2c4a0cd4bbac71e35b0f7994c1def664b7af84ba5e6ccfac1424be3102e15d985890ae44fb06b1b7f45ca18f200c8acb9d98ba114a050912b703f3cf99ed1655b5f631b26fb75d8db6dcbe145d9aadb7903217ef2bd97fab5a0948fecd8fcd22b36ff8ac0d04d8ff17d518bc2286a80e362bfdecc41ae4054ed9b694af8313a2ff8d909d50cf140942da5e77f851e988ea5eeb65bfe6bd793edaa6add6362dd4a62f6395af888085144efa253dd2ac4382972ed40b81f06aa994e4d02000d558e3993b28d77aa66141b7bbbbe4a162bb4f49dd5d3827d750ca79a2bb9fc350c757890d3e80b6d3db102ffa201d79006c5c75aa83b710ec321a2ee2711451195248d5c3e7d3b3aac26a67199a4e85952b5905958377a88b20da16fda986d50be8623491e32a07bd18ad89de4c6 + +SHAAlg = SHA512 +Msg = 56b11c9474a886b054aec059977116b88d8eff7efb49fe301b82c6c2e5e5a1688d6012a94ddab9b5642278f85f25d4ef97659e3bfba6d2f40feabf3f35a068232c192b98d63ba0e13e79c41cd90357180c398266ef66bdb351abf055fc39d82339c3ad8a973402dde99deced8e7166daf5f4f4285ff18715e7aba12ac017b911 +S = c8d66bf1f90237d93b174603c01d7996357afc51ab965e247664b33caa662b567fbced0b66ae00f8116867b0d3664770509a7a2192c5bf5c3832d0a0a19fb3c803a3cbe7933346f92e9b5792658709a92dbbb8d928ed314b5a27daee92c8d927909a15b6c805ad87afa3a8d666eac3496ad81d3250b825380e203084eef1098fdaaba364594418714e7276544f244cb755cf095a0a1a085289fb97ef860e2deabd9d8322c2f2445cbbc6e162be347998d1fc86767bfb4ac17abf33e54d222c054a3f6b339b01fb826694016d8a50f2739a8774223b4a688198e371455714f4dbf98c0d5edc45862ccdb1aef6d86f0ec4c6e7acc106bfe8565ab211a7ae3f806ce98fccc8b3e15dd937228fb75aa98a52597a8bffee05a4eafc92979a2fdc00e23474957d2275f10940fe2faa0564fb187dac74c3dedc6666a8f184c4b0bfa59198d1a4b0b46bae75282c4a8706e20f49e635123c580dacf69b285a46bebdb7dc2e63223732f8bd1aa1ee9ebf979a958d19c46cd8b0e99ed37135b16a6e95b8e478de5b577afa918d128fa012bf13915228d4882f7547f70895254944841c75c85a5559ac9446c75d6df8f92349f692f7a41935e96dd9006daea17c36a06a0b010a48deb184fd4fdfcd31762e7f1d540e0e0405f85de95a039d3bd12176a75a0d778e00e53d37fc47581170f5aed3bd44dfaa2b705e9132e96f13a7d3f792eaa0 + +SHAAlg = SHA512 +Msg = 6e5e789c4b97962250ff3ae8310b522b03064eb145053d5c201e32feeed5ed6ffad7b7dd86eb8e64132582dedc5c5ffda4df8c97b16433401941a21e3cdff2f9926be692a7ce153663e04c928fd82ec995081dc487c75eca63ae77509607dc12be82cb62b42a75c0ca985eac516606b85fe7c9e1cf15041f88cb793b0335f5e1 +S = a05368256ba63f31c4317f2768f8a5b490c044b2ee15fec78a0a85d4f7c1a988a5c6e946040bf2d862e970dfe37b67f0221f85b04b9e607245bd0b21ce5bdaf8b138bb451205fc38b60b942881ff20ce077f2aa070e48bf71a21ce8a18c8b48f09bf5937220e8f0ed0d6cc2ddff2cda195e041ee319b43210834ece6d9030237df5bea8d93a81c4d62f7ff48bc8726a3e32fe7b63450d2d7bb564a8ac80c89b588348bebbaa43c9a62341b194b4cf3f44cf2d7a7dd8eeac77c867894acd9c9aa34eac02e7e81eac0638933ce19913d7a0f6ab9c89d5ffe74a9e779a80cb948805b37a0f952d3bc9b508af0cf9d0c7d9276b29358bde046d65a664b48aff1d0b641a789b5d5f9d0bf661ae611d13ce7153b849ce071628e9f13c1edb092169b26f13b3a6fb0929fa4a033ebd345655022cf3982ab22301a472b3ddada69dff2d51defdfd72c91b4d3dba9d9a8801f03cfab64fd0e63ffe2952bc42ee10253d82d705e04097954bc6201c57ab0d1e0c60591875fe2407cfb1d6717de1c442cabe2f4e81e939947b486044c0244f04660da5533fb4e8c2568bda7e504ff7b3a0e217d83a6dfa3bf2396a1ce92225b8d8374f2c67f5ad944e4cda7641060d0ae3e6e459325bfe6047b5f63969de5a0004c5d9a18301f9862a9988e9d1a7507b3d00e7520717d693db5544edd8341413b03e4a6072efb8053e6ff0a2aad3e351d3d04 + +SHAAlg = SHA512 +Msg = 806363d4e2894f3d68f35c78cdc332630763a64ac223d5ad0c246f44527656418b7d68d5b39998f57b05445e3f00c3d7382b3db6f333bfa501af8ea6f14cbc557b27fa6dfe7aad8e2d7b443e0481c82d0269b4bd923808c1ca019985570aab10b82ac1a5ab75b490e51c031f068e6aeecce3b667877bd78acde237ea6ef74af8 +S = 7591a4f620dcf5a43310af89f8a8d7ded94294d204dcb159eeddcbcb1c7ea6675101d408464d0e4f8abf3c50a82b3d092430467bd08292b57ba9870220f53d3b6ac989ad5ed3249d237bbc76b6479f8c45c2bc9c25460c54c913c242c0932211dc4abfe206dce6302c033885e32366baea3a6b2e1582bccbfbc9e45882ab58425b17449a53e5e0b10d1287c58ac2c44424f4188bfe1de498e29ba2a1f2a8f28e565b997946fb359b7e320e4da6ee64e48547b1b7946919e91fac8f4f631a8de9c1029e87c0503cb18a43a8a8f5d9c3dc59d10a41ac65d4d93c1e7f5c0ac27ea2ffecc17881ffb6d63e4afe8b9c94610661b30ce34d4ec732b9cf886b08f6f38ea9aa094188067b656657eab22fc90e234e64e31dd0558de5891cd49cde67c5d6b1e307e23a35226ba09682f194eea06325c9e0a733c9758bca951cccf5730b71987ef564f92057a1985e45d3fe20bec7d96aceeaac031caaf4504dfcfd8c7c12b9a580844851dd54aedad307b7a6fc79e87a9431faffc9353e497820697e7631600c7cfaf851f844981cdd2b2048c78044e0af699d8b0b614cda9a3032f834112f2ac17bf8636314c1c2c5d2c38606127f57d2ffe8ad7a33cb02abae23c2eb3f3b0852826691729b16cfc6b2cc45d4177782ed1c1de61768b436d5b8fa6501cfa97ec65f5426b63e9e82ec3780cc5fe0cefef8f395a4935da39cffded65f9d37 + +SHAAlg = SHA512 +Msg = 1c8b88e34c5469ce1c6fb2625b0247fcc07930972cc0fa9d30b55afccfdd147d85551b52880cfaed4d3072194ee665430b3ef3184e66e256b41e43db696b520333909f30b23a6baae6fb55aaf1f936b11ee8491e23358f00a3847129f75da8842e225aa8524585acedb7a13dcca481ef035d7bd13296c84406d12d0d021adba8 +S = 9eb10c1a31066c3eda46d2a6102af5232b92a9e164c2792303454c9c9919d2eb34a896010cf2230f8138bca6869b4625e95c92cf2920b8c897749a1586e9c4e24e7a975f44968216b4ee88a398e49e3a234dc32f16ff998b8cab805ee9876b2ac6390abf53e6bceb2a8b1e6c91a550584208b53c23a13a8d5739343740fc667a8c9883993f9e77b2bdcd8123f1389bd7b3ec363c5f84b5b65dc183529b19e27c3b77db8468d97aded8ef878a112e0fd099ad1a634a3ae84972b95dad1fa7c5c46aae1e6c5f2bf1b57265a2ec4aba9cea60c738810f628ae076c32d1d12cfac0a2704af40162010acbf819bf20c2a5282d76c05a09ee5812db5007ee43930dec8d928a90d675f4223a77491ce2b396bc0a0d33d359051c957e19e411cb3577e9550f2e3ce637954551231088658b11b3e92835f44acf92df0f0481aa8b65216c649201284b85cda544eb9c2f08599f257adf3d3f12fd3032f0ac83cc5ba94537c4a55952e7df234e13e8d0c6513046d7fc5c7f2b2efbecf4c19f207486fdb5940d39b31e0dfc17143c74206c519f3e799606122688604c58eae05ca3b5f2a7a8a280e712e6968d4d225fad844dda555543d2e5fd9f86abeee66a9b98e26f90da6313de0376ffa4714ec1a82f74132c1fa60c6bc63d48f6a31d5bbd49b8a66de5dfec94b354c60123f9063e85ae54e75957170117f384cb72fdd96c04871225d80 + +SHAAlg = SHA512 +Msg = f708072854534169081799b3714803beb67f8409ae4d39cdfed09a2f828300b9ef5a650bb60f6bce2bb6a0eae69801f9693ebdfb04cc3b4bf6915dd2d5db077a3010dbe572fa47600963c212c8e252798af45218194e72694e72ff19798165740250f21f51bddc05ec448693dfcdff2861c8cbc7b47ce7104d9c076e351c2291 +S = 9a1e8c94597a186ae778ebb2473182b32dbbbe5729a574ad55346c156c5a377ac7302e09859368258139a46312b10aee2cdfd53f213ab42c65ff9b317a1414a071886b3066bcd3328aade60e8e6afa5c28d7d6ed193059c2af4c8617efdd8fbee7dd180c9297783f568f0fd1590490d0132a87b27c4b8be188eb513fbc12a419eac894b254b1b862254047bf582d2faf8c1cbba9465be5e71b7afd3e20bbbe933b044b33e9f06aa313beb4558d02ffaafd4825225037098d567b1120c042a4f5db6349d42bf710f0add3ed28091f0afb34695567baa8170a836fa0a9499de9f2877063b3e34c92cb723e8a1b76aa8e26568938aa5e51e7d0edf666535e5285ba1dc83b59d3fb9a0ee969cf4269aa94f7102f52080ff3985adc62d4f637ab7cebf7914e00141b27687241befc726e7765be8aac4b4902d592e0ad05ef54ce2c278d01e7e0b8de1cc1c48d912965f90be1e5170b754a283c571c88688f2d296c4cb5117372654e82fd9c871cf33bd8a041f48d484777c023db71ab2a0eb336c3a76d11021b7772dd9711d08d7e812e9f1373affae8d5b2e2f6386de3e38f93dfa7094b1cd625efdec3835b82992a3f50e64ebd6fb0c4ec4106f088986f98f1161cd4a8152c6b12c4ee2b3c115f3fe874c0a8d728a18cc761044c2b66aa09193be723d9d841e773347cf2346424089b21a1439a7cc3ae539cd45e99ef6fe285ef80 + +SHAAlg = SHA512 +Msg = c810b157fac10e2fe1fad7b4f03337b5c75de758066ba2bc5f11d9dcf0cba7b7cf2207aee62b452d0150b28d25529c39248f7d106e81730b2a88f02085e9b3664a16f779b430ea2080ca602d45f0c9a5086760210b37a674e7670f8eda08fba16275e7820bd8e55185f0495cf912a6419d6ef9538794233fbf379df0973067af +S = a7ab2b0a42a60f303f11b8f14ffcd35e7357dcf5e4e3e01ba32b8266c6c3dd59298b059142bbfb9f18f22ba1c638bff000299fbfc38ab5c5fa6122d476e214bf8b0fa96297c1a63e134e1283490f16e362ee885d135a58a450067f9dc08270063ff9be625e99037a562f3a47012988790c23842695d4db077b7aaec633094fb20656adec1c733f49e4eb121dfe91c8ec9d0db80f786f91fab87d6dcf68bca9d3fe9bd18d562f37db5f861850422a64df5a69d7e6c7b12d8ad3d7600e6cf259ccd33e7e66c3b8ca2eeeb1d4c03d0264068437b040c90f2edbf3982d227ccde89207f29c8a9114a0544ac9e2b64991621631a9145cb6ac0b637d495add900eb159258600167d71f28ee249466ad43961b1ea563743fd5c700d83afda3d8ce64c1727c2d4563ce9cd146687c2f8f8c2f402d903780cb77e9d9538bbef0d0c13f86044fc690a180227de71fe429b99ff919f4214aaac666f8b0bf18941e75a61d6ce214469b9757a4856b2da118626add8d2fa4d0912468f6796908c4bffc287db9b14e957190370ba72ade18ad1c2cecbb1d9ec77f92be526ca3320851ef576197fc69702c45fb6594d4f9fdd27aa7623fd2812fed0e26214114327f85ab740272f0af3e4e07885c130f9406c0e39d917ba55b4bab001572c0cbecdd6ade69467bebceb0473d3bc1379bd8fdefc255daac9cb88465552b281d525b7c8ee85acb9f8 + +SHAAlg = SHA512 +Msg = 431f3238d891886ec8471401ad04daf24e00884969955963b03b398e11b62ad33a8ee6135dc0c65630b3e25f396d7a84480795bc455ee7fa2b0cf8b9559783d8f9e71ca9f2fe1645c2e3a422d7df3ee70dec477e756bec6b55154f5d6f34e50386131c211fb342e385bfa2710fc2f0c3a598e7b781233061333f86a2e8f718fc +S = a36086eef46617b01648cfeb43aa676ba1d0f32bdfbab194ff17e685c476a434111f029d75051e00206e7cd12419737d6803fdccbb2eb76bba3286e334dfbdd0f83babf29a92241d97e13b8205d2e8a33a8106c16d9f98a67ab9b132ae0c821d79dcf824e1e28194767ab8b2fde70813b6701f29fcb1470675207498215a6f0a4671bddbbd1a5697e11ceeb61384b1e494eadce1d35e153b5a7eff8be54aeb17212118ca8166ca81f7a374272cfa580b7c2bf8ecde65b42860ad9463316deec871adf5851864b538efab894a8c8370f0bf3afa9c3087cd7e955586d3ad08b90278810e7db57d0aa811146f0ab90698d1ac08a25358938fee57e25ea0620bb40455e6cd2c688c5de20cadb5491a19956ecff1cba23cea6c991765e9f749635dd24871d24a3a475300d6e08924d037b7aa8dd71046e9cbe8857081eafb66aaabb007b6ae395151bc9bbc31ccf72ca756eba01d48c2e24d8422c6ec82d4df1b953739c4846741b81568aaa59509e81109b4665adc1a57b46169ef9bcd912d3f108eca275345b45b2aa571357864ab1212be27d139547bbba26c409681f632bbce553be94de50e8fc47e685dca76252b1094b2785d5a82c5333aefa24523e1e809a75f8c79b182f734bc9359fa1da421c2ebf6b18f0cd79ec97ab1cfff1bd1833d90b8aa482a57a29b6f886db5d8c14128aedfdc17a16a4449f5e2b9c61223b2a5cf + +SHAAlg = SHA512 +Msg = c2d662d5ea51560c4e4a3c25e137c4dff571f009aede2445b7cd7c0d332161f3f7b25f2df6f03150fcca1e5ca0ce89f97491c3007e51233decd9597403a5ffa1594771844409df5d92d4a0f57a50c9ddd34dfffa846289423cd3a9c063b82dde505c41e3bce487bb76316af75907af147c6e4c00a8587eda0f8516f93aa41331 +S = a023835c19f3b9e66ec2afaf46820cb34fbe196919e29107a47294669f50690b699c19f08b85da515d4485f1fbc7cb9541e4329a2aecfe764f41a34103850b2748f75de6829545894e3b0d4fdcb047017d30dd3aa8b49b38d21d41e6d89fef60b67d6e956ff0247eaff157c6f079dd520cdbf0915dc08dc6c01a78a5fa3ddb8b8d0acda861341a002b739fe290f14dc41df97490fc1e2d60ab2169301dabfd215f0357b0832a390f97ea96ee98f73a53e7cc6340217abafe5948a0a83190708404e0328fa156e366bfe2d4a9ac75531e458d91d151786c36bef7f0ce2d5ce5b6b0ce4f0d6410fd897342d492c1a7f8185013f723d746a61d2b97aba1e3d534dd63d0ad21a3fc73d97e480a7be367c549784315aea37c3a2f4a3172a5b4c4c6cb15a38d4f2d276c643ef4ade2b7ca6aa34b248849720f1bfef5f9a11f7dd279ae2185e4195691647acbace1ddd38581db67d37a839c2d6c5b62f0fa798d35f92eedcc2caf8a7d5623884f2f2631d82b0633a8c3a42baa8ccbcc7db05a342715788fe88c23652306fe025060d5c4ce305e33f12b8fec51d1d0300a7c0091e9166cc6a9e0f24b93fc93e5c712197781072c040acd5feb83cc49118d50aba69b54b3e51131a64c120a7989f05d7bf4543ed3cb0cb9048af363125d75fa25da39260eabe49004f51bac9a9feeb5818b514b09327caef7489f9c2c2467004947e48fac diff --git a/test/vectors/rsa_vectors/RSA4096-PSS_186-2.rsp b/test/vectors/rsa_vectors/RSA4096-PSS_186-2.rsp new file mode 100644 index 000000000..22860921b --- /dev/null +++ b/test/vectors/rsa_vectors/RSA4096-PSS_186-2.rsp @@ -0,0 +1,130 @@ +# CAVS 11.4 +# "SigGen PKCS#1 RSASSA-PSS" information +# Mod sizes selected: 4096 +# SHA Algorithm selected: SHA256 SHA384 SHA512 +# Salt len: 20 + +[mod = 4096] + +n = cfcae49f88b80dc12186d53c57162dbecba6e348094f9fb3743e39d99d5355d87e3efca9d488d39d705671e58634309cbd7cf53fccd52d9a84edb99ffdad0680e9ec826d625728370717b39321c7d4b6882785cf6884275f6c7b6d681bfa710593679e99b67d5bc28121dd603617dc8cfdb2557c2a04533893f593f0f7e59cbe6d46623d22642a7161a4c685b293c7edcc9aaec48e3810ec74a884a41108610d000b591fbf5da44b5501e63781264edf3c73706321ecf44d0e14b5932a2d69ca3d180c5cee86b4ccad850c766e0beb5f20e6b142055d551aeb453bd099eac67eb92cf13e34ef0d0e34fc599a6e5d4d14f74e08190c66c66ad3473de9ae8f53dd2c1c0c41f4b4a8d4690f4b77354c76e05ab76b7a6c7c9edf0955fee799a2bb42c86c6a06631398d38cceb71ec9aaa9a0fb83850f62342f3f781f9d453229b1a709bbce83a44c225ebffd4f518f94a7935f4669f65d02ff3defbbd1d5efd9191365808cdf9460371ede1eae735af03f21431239d5cd57cc0cc88fb3965d187eba98359409aaa944a7af8e85e20b67c43c82e78fa967fc0d629bcd7483d17dcaa25915571a15c3f0c730e81095139d71a28858dd9d83b65bf9c9273a8a40b12a2c87107a71f984818f7dc766374d31b4c3a1d284adb2a17f8ac85dbe3f58cf78b14c0fdce00a79daf348aa0557290ef5f9dd305c15fa73d40c6822b75fda13ec43 +e = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 + +SHAAlg = SHA256 +Msg = 466d2621acc8a91c729334f1ca433bdb5605058d4851f86cc8c217fb9625c996f0d0dc64b635c987ccb63a95c0bbc94cac020b815e37cd5ab7c59dbd51eb8d0864123303eb5ef413028383b093daa41831b4364544ee701d67c56bea0eece0096cdc34e6946cb128dea117288cc753a8adc08ec2429d691ea06b8768154f4d01 +S = 2e512f73d198e623afe019bd4cea9192ff8b24ab555099d31bd52d705fc808229a269bf749c8061a3dc7ffae9ef7c6bdcd8c34910f92f0a0fcd6d73017ca3388ca5e99a1735e005ff5d5eade3ec0ea0c2436f0e78b197c2d999ba4351b9e37a09195504b63a42762bea22d307a0328fc9c80acdc28fc8f4050e25fbd5890233028f97ea3a2669ff4d5f4232c1e48571499af28ed6f5a92e7936de39d913e12c5cef51e25f90a1e903f3f60a6a9cddbc56564b146aca6af6236b899c2cb7223a6941f0beaa3aa787b2333e4f3e66b334b99b90825153ebd0095f27691880f44e4e77135f26df376e261adfe0d8354cfa15b49138d624d9f62a9751221ee0598097891c9864ad3651e89723bc9ec6086f571e199619ceb6720ab5a4998254cb807dce75a5a5203d38a9f5d56adee4239ff50cefe3e927eba91de7e1f8e1ae8b0505c077788372af7d8ef00735cc531fd46dbe86702ac49171f0a921f4626442ae960e972a5594ee3bcbfbf687cd96ed300aa9df1b9487607b5bae0f1abecbc1d2291fe93b9f8a091ffac8469b0f00ba561f0628f5e004ed1fd8713650e147c4b2cab7f4d69a4ad57b145c1e5e4c1412e86fbbda5a6096f66293203207e35098bf94dafff75ed094d10e6034cd22179d94655004fa4bf4de774807b6f5cd27d90255468cf01db7b6f82607df597f72d1f9c9c91d17740a14a4816ae65e63fde480d + +SHAAlg = SHA256 +Msg = 072b2d8b3326fb1cccb6766dd5e44ff83117237509e4004e6d2726543e530ab04b06a11cbae1da53aa966dc51642d390fcfe95acbfb0ca65cb28db0f77688af52f423392d2295104594143bdbab8517c0b59ea7beb5e2fea1e86b69d77688702fb076b5543a6671722de83bc88edcfa4a651a84c539638c6af6c3c6606fc0abf +S = 8e1ce3b434ff67057d79dfedc1d073356fbccb6b7bc0f68fb95c3d5be97b43bb597b2963cdc5bb72a2ba55e2ea321e44e2cd408e931700304bf8048f13673276f439934f1d2c27deede5ab7279a44adc10044253844123e921ae8796f9da33f1a1396aed3b1d382d7ddff866a3d62969493a55191e1f41d3887af8bd402e1aa2dced9de2737db831ed63587622926b163bb04f3ac5ff29d37cd02f1484e10e306bf8504dfb44ffdd452102248cbad28138113f4a1f89913818884be09ed37bad387848e749c310395463d367f62287ad98dd4d6005ac1dc6c33e4f0249bfd8334201d5bcb225c863920c31db82db583781ae02a2918aa55b869aca94e3802804d93217cdb72bd92598910a45f9f2919e50dd120645cf29b7523731212812bf67c6f728f4e5ef8c76d98537827a612bc770ad85a3b0be2cb7ab3d27ab1e867ecbd7fad1e2718e132f9cea1e4333a0c50083f04f320dbe1928b72e1ad9173732b8de3599b8f0bf17f47fc8d1383e1e96761fdb4c687293fbcdaf08f4eef4acc6340814e11e3b66deaeedcf57e6a4c8258677f3a4a54fbddf352679c93df56b4e84396c64aa7f7b61a6c09f234f1efc1dc3ff3f1b9c65958cc8e44da6d4c2c281ff8ba6371084a038482077efb47ce6e38a1180d142b5b135c324e66d735b423de6d1a87a6d1ac9d961a8b0426f34b3c2b39e2fbcaead7122705cca3385751df7ea + +SHAAlg = SHA256 +Msg = de8273359a1d6c24828cf071571869e7890170d5fd2aa5620e12de21d20685e59e953bd7cc45c1c5bb8419bd18e1e8db5c7c1f5f96bbda026b3f898b5b174d9d4633a5d32e1b490f3ee1560e0b53ac401b7694d7a430a71e9545eb0dda853e1adc43f8514808cca71289ef8cb9d77cbfccd61866adf0d25e950a4cd0d8b72005 +S = 41a7f65a128fef600b13d4275d2597aaf46fe2ff14f3aa571ba7d18d404ae818ac4217feecbe6bd62e8750eab306bc0cba434b8d6170e999f6992581febb9d2abbd1b21d35e6268f284a1ad98e9ac2020b4fb8c3ebfb84baeeb02e075b3a5a0f7e920afda31a08e1e87375f62e5095e3e7501d2225b5eb42573a94ae4b1bf977eb68042f565bc0f8af9edb0c85728962e080fd8135ec8b3b27c34bf64a6d567edfaa581fad5891049d0207ad5db8c48b379ff7f0a53865946b335ae7b3b670616e7d13ae59dd6e86bfae9148860eebc631395c865f450fc4a1b1c276e4423633c610522e39b97c856ea000001d4b3108f6a61be13c32bfe6b0f177c26603dc00ed795b0f478fcc8dffa54358844e47c70fd88f6b522fe1e8f41369cd80cd8492bd263c7b0d828b5e07f8983cf51f9577535640e68701d7a0e69ff491afb80ffc1cd29c6407562c9da62393a795c41881a6c4e474afb779490ef585f039e6410061e8889b1a778a357427e92160cc6aa3fddbe9c2e7cc08d6407a569e398a831581a420c471c8511e969c32800b6c38005dec56e328d5c2a80b089dbf3939370048baceb2676b7bf6185b74c5bd59797346c0ef9756635d4bb4db750ed21114e8a8ad6bcb8af8e4c711ef4f4b98345e025c6b1b6269e12282eb6d387ccf37f7409a4819ad48fe8c2f7f36ef8d051f11a04580172d3b3e1a1ac14da17a75180176 + +SHAAlg = SHA256 +Msg = 31bc99f9a71e611439ff3b53536913c167570ebee1d31e475c5cd478168a754fa1f54fb3dc524db522dfca15c102a308ae2c90387704b40d78c2722b52d8833c99d845efcd9256408c7c62fb0558397bb01025b83de57a81cac86e0558082b98802e23b46226a43edf9fac0b08b3fea3d5cb75451bbd992bb838700e106297ed +S = 1941d6a169654a9a539dedb26bc63d7b7a7100ded3a7362d9e97ca99e1242a34ec72ef4928f27e32655886d021267fcf6cbc2aceb132877a6f1a8fb892f1a87a7469ed6cb640ffe9f60bdc20ac2e0bd6eb93b11555973d6638a5d1939020569807560e34eb712a46af40eb46dbdc7ec88f33a7d261f857c4a0f38563c6bc66053dce3679345c5419cea5772cff9aed28ce05ca190dcfefe9124135a464f568a4933985c3e550d99a91e55576beeaeb83464789e005d89b090a759940fdd796618274d3e1fd6814bad59925b3681f924976809644d3d2397b9fa304c19c15bae4ad1a8ae7cfcbdfbd0e1bde09c103828b2e4db2220d232b3a817d8647b16821842f4633d15f4a7344180ae82d37df0bdb311673e79876809e178227dbd45c8fb93e5a864c44f7d5e185c7399251cfaf4601e0f08664c49ef928c6a26bee1db1dc9614ba8695f38808bb94c3369955587247e208385ffdb71394ae85cdea07e3c0892200c59cf1fb73b3defa67cf41855025380a97e78f85efd84e72493d76391c33b9ec07e1b5caf537aa556e4df6ee9958f3dff4abff808de2bbc13c3063f7ca33fe73f483e234a19fce7c9dfa4c99b0568e8e9d91f8372dd1fc65f495264d3064ccc7cff1dd80848286c49f68850c50da541dabde2fb6382c213cbd668ba8572f5c8f9afa06bf43c69c3f78b1f0a8ce86f2d491f9af22a35c4d8b12e08eff11 + +SHAAlg = SHA256 +Msg = 6caa02f0b377f161ee60b0fbd6c56a537c0358cb8da62b63d5daaad203239cd6ac4ee8c892a8fb73256d6a264a83d8085c681bac706a9ae5de16f9dcfdf2f95f2d6f997c1b19824f4011a118abbd169001be4d7ec2226a85cddbeb4027708891f8f35e35d6334d9c46329ff880daea9573eb3768093863eaac13c62709061311 +S = 4e59aacd9d80fd4c580026a032f2626988486bcd1ead68a4d49eef593b6dd6a5819b5de2bf5bc852f4eba33d7cc8e2b6b4235d63cf4630c23018a82d35bbcccf04125d94433ab708617c536d36e78fd0d9b73e20eafc9be380af690054b622a0c149d6e40549352bc63090c4ef54a5c726facf5d62e621668a813f60dd9b853d4a0a8edc9e255338d042d63f3b84783d79f689e41fc8f5503b6fd2b489ba052946d1548e011231421e533f63a3e9c0c649997cafb06173c083d067fc683056112a34b20ac248b180fa81aac0bfb84738bca5e831b950a2347b449f3093c86cf66ca2df0dd06ae8f78c4c1f7eb3525fca8d194d132507d354e267a244745f479c289cd276a1fadc68484fffa8fc4f9056a56230d0d1cae1fbf26697975c3a1a9d593744b2cfecdfd8bc61a1be96d10a96264b41ad7ad8352f49c5c0abfa1a9a4c0c9ea4c270a7ac1b46099280596b1fd05ae409b1e6fd8dae4806b81fd354f461891eb985cfd0f2bc0c6f7dbb495b0b216f2174255e9a02ddf0717983290c09bd51f53ad3251ef08e3b464207dde0205341c84fd818aba28e668e931fb5e93f76f7242351288b72cdfb5634c79c2168460da6f77206146e7feda71447f1cc5f974cfa01bf97b5d67b80ca6a8ecc61571279c68f7acf144ada2918fe12d5884bc836f51a2994ae0dc3258677e0005c51233815f02c65de6348047d5a80da7929fa + +SHAAlg = SHA256 +Msg = 5469cf214a5fa3ba7c12f1df1f32b275166800fe66f52763ea96fef048aa78a02396769b9269dffdd1bcf3d937dddc7e682c86f8ccc4b1da405e453b0b73e5ff13a1c6585150c28b8295a8f81f57d75590b00b3a9d9576e225ba133012b037f08c5069606d5d73eef565b944c0e8ca82f4bd35cabfb09e02017010d545a995fb +S = ac533a2d7f43115e33d3343fc79a2ceab9c377fdb9e3d24b08964337ca39aee0fbe30b17c06d4f8172211062db75b741817b44d7e64eabd94c8bcbc32c0b558174cdcd77970dba0866510efb86755c8f91e618ae03f518514d08807cc4b42f33b6c62f4554538f32e6368c16b276144025f91cc6786f8a9ed9847a5132c288f7cbcc939671c05014e52d1d1678837806f806ebe20d2e4f0e7f48e5edd2a23a5b297532a2c2682dd2215fc27a8321b9652f86d57ec1ca7a2670cc39f2e644c8f57d1d25dc247700c8b3988afd19a37dc91e32c5a1e0610279f829e5f2c678311b97eeef771d45a5a4015a259ed9d868b3cf453ff4cffe675e343da837a597a2a9707dc00af70768ac603f282645eacf056b7cb2cba0086c80c3ffe9c5378344ad995037c13102f794d3f9ddc10cc3c8d0d5d5cfbb0e511fb78abedeed76ec8e8f3985449d1800d38706732d55afe60328f8dbc203ab3d4f235c649d3b64fc89cb6b019bfa6a1831b211e188080e700981f2ff724a981e211d8a5bf47977f37e6b46309906ce31cd03bf4add275ec870826f84f8f4d61fd2dce9b51c8b8c5c78aacc38baf5509b8967161e6a054224850046a58419800bad7f9a623d24db7bd55147c409d1b7c049b317540028cff2f16779b8abcf625c44e93cde449879801a8a221539a707ddad175f81440299372a2b3d81a968352aa50291b347f48add5983 + +SHAAlg = SHA256 +Msg = ff981d4f62612f0e861107121da776732c224f4db29626718a7e575b92544b650d5ff63a46cda48c7701f60ae82e278c5b259491a86b7ceca58f04ba48ba7e971088ea12a016bd5eae5de24a1bbeff7263ddf9b738b3baee6adf32d50a3d9b4bcfba02c0b86703eaf3ccd4b9fe7e858e0cf485a8aa9669dea217e99420052be8 +S = bb346fc068ee6ac67f2e75f7db24553ab54f71943aaf7745dede3a0a8106126978372d61547da7ca3bbd5e2ea5b410978770821f257dbca3f34d5d0e7e15689a1263e61a564b860f5ffe2a01f2ee284248378baf68a8082612e66247c96fef865e7c71d48574bb630b2fc54ff977683c738daf198bdc85351b8cc7b2cf9b7a2cc6a56a5d9a9c0c72173fcc642ca8108d339706673dfb23c5d22fcf9e3702deedf524097914f5ade77745c5ba67a23d15a9e5d8d902b9fa8062500087921c2484df2b612f1393fb6b7624e50f511e641b441154d2694b41b586137a82a82615d6c0dc6e7979ad9c357aca5274cabf16a00fb40dcbf0c292aa547caddbfea7b3300c75279e07b90a37904422040a5803eae3bf7d429b3ad770cad9026aa039d76d72b5d4d7fa367d73c130e5963ac77ba5cb33997f97af38efdd18dd026d84fc3b3d3ae9d17178657352933ea723819cb5339b484a9502359a2940a30b005bd7d44a287e693406f1575ec2c47681f8c6364a2c02fceb769ff1159783b42971be34b1f1683f3b667e7e1501ae3dc0d7018bdf912f1df7314d0bac03ba2475a82725730a0fadc29624cdaf1bb1e897980aaaa6241006af7d31ebcf43f3daaa10792c5ffef3ad05fd947b7dceec486b6942036cf4d5274269d4754ccf545a517546d3d0841b73ea06f797d55788e3caa56807aa5d466aa1106b24367ce3c347e31ec9 + +SHAAlg = SHA256 +Msg = 897e84ecb9f5457bd877666864160074ecb6b8c5d2c19f354f1c57f0b75a783eff30319d7c293313ed9bcac2bcda4dbd81abb91ac8fc994914d229a42482ba46742458210745ab4b64dc1b99df7f376f19d758d6ca5281cfbe178ae81e3f7e0cf142419fe2af76cb44219f14536e8633bd21dd21612b217256d5c4e42ff98a38 +S = 22176c8a77230aa8e56897db1496bf50cd08fe6fe89892faa20d8a00879174d4a4c8acaf6b65b9b48582f840b65a7b246cf437bf6aa333af062475894ce795445ac1d3d910657cdc9e983a4ff8991e5f73ca5a92fdefb1e5d3d2633fb8d8c5f1ea1b32e0c8604610fab031fba5049d829805c708bae8663e5aa6b973f16d79c27176f5dddf85d323c03a21691bf25a7641a8916f5f05c2069b4c26cecd56b6592d6bcb90008d614b9c7c9ff755f96ca97ce961ce0a4d1847f75cf702a03f3effbb6e9b7388810ad6d5a5cfceb82d6e228843fd9a3d81828d8f1fa9742b2791a479de23960435a8710709e391c05bed6ef4b24f22513afd4e0c378f1ae24724c233d0c4d1b28edf47bac2b145fa69828315003b9a69d88a13177ac262eb8ff1f121ed40f61782224d973207f84e0b7baffdc52084b61a204732669d102cf1decda9ac21b92d755c418a04136630b94f6020fd9f93091bfcd0bca360d33db17ac4773ec08bf09e43c953bbb260515203dd9421f0fefd2fdaaa95d301b80bcdbfa81e1dc07d88475e0248f6581d8f09d2a8e3c59dc40cbb9112b909c53465fdd4f748d982be38422942a86bec9fc40fdc6f7a354d065e953a2490a332856dc91bb80b413994713d70c08d2999d594db30eafd84ad1a1db67f97e67b0fbb3e0275fff1588efa47947e92b766a358d2dbbd67076fd7a30da0e347fab83fca0a9f853f + +SHAAlg = SHA256 +Msg = f077f101474452c4891c2c54c4e9900a40dcb8c6ab054b287221dd0372b3b50ed056d4dd25513310df6c4bcbe402da667858e565602df9aa4792b7e962fc905d5098ccb944ded1626569a2db7506a680b10bab78f9ea2ae53105cc5de7c42e9e36e5e17dea14b620e4bc386dc11c79c2b69d12e7be636541f82225484a33193b +S = cbe9c48448367500172eee713d39158907528c061aa6031d320b3255e91d70eb8478a53106624c906617967a7e378564d340cb295da21d4b9ce6dd5725571d4844556b4748d1b63b02fb3435b41a3bb56f704d89319088488e59c04ffc31515126d96c90b5c324ccf4c33e284f908bbefddc1f572d7c8c0a0b287dc42d3171d5f52f978b6548c17f6500ddb46313700402f8fec3da4e6ff2d4e52d6fa4a09f8d3032b348b6636b0b4cccf7bfd46b203d85c9d0ba42d578073aa61d1934c70876cedba97c9f21c63cfc016e925891c8161fb444ed6555ce6c93792e6c26f9dee41fc254cd6d7521eebe5622418ca93dd6e5025af23a8522f1c83e4bcfcaad3f625d1de3c072bd935d31c0791919c09932d0e180bc38b0bf0adbe6201a561810a346d53dee630c11d3dbd7b6a51027cd24ffa60dc52b2c0bdcb461e15a3aad93eac4161e3752d6399eded4c8879ae587183388280537fb397275977bb338d2f970eb90b8cd3564b25f4701ec4bd5954268ae141f0891d299214fc6f570c58d7c5467005f521a1e6852b3ddc85567e317636f277f3935dc9d46dda328605d074e1e4b96296e6679c27181782a5b9ed89b66beb4a2c0bdb70d12f7c1c6a5087a937d6bc97b6dd4668c2836903177a91a7e52aa81d59bfbcfb5d8a085c91a36a19fd13915c0c96799c8db1a7832fe1e1a9e4bf0d53d4e6362ead1bded7d7c502b77d7 + +SHAAlg = SHA256 +Msg = cf4800e5be8b4812673f5d824c32e11c4625a444bf2c755922583882909239abd5cac0ca9a52e667db84a65b9cab37d8d82199a9bbb46fbb114e0cddfdd6d0c4ee51b552cf4d25187e7f0f1980ab39d0f3c4d875c3555e7d211f93603103e79e03230604c545ae2b3778bd435ff98f0e7d57862f41d6eaa53c11f49395e42542 +S = 141ffde43d5651e692f33554ce37453a7c884a8aa687677c52f914146823908dcd1f2e1b2a996eb3860a27a27e59508b5310858ecfbc8d88c6ecc21e18d21ea8bd1e9764ac45a6ee3d9c26d3dd5bb832be75b8beb69b81faa140095283136be0c2f3f77f3089b02b2dfcba7df182ef8d2dc71d5deede8cbed256c970fbda4ba25a789337fef8daf56c556dcf61fdef418d7f4b844ed6e682237618514e36ff7e448b9972b6fada3aece29ea8458dd7b5c6543e26e4281813a88135915043fe504a882820c29a7d1c41f8a82b66462eb942c63e434a6c8a547eacc5556cd433e2f9cb65bc98f8761cb65a0703ebd0f2e4de2b222d0df8917bf1df12af4516e15e9f2ef9998610cad9d4ac6e38347d8fe9706724daa377fa920fb7d7dd86a64322855df52ffcb40acebe69b1703adb2bd4db7811e3b851257bedc42fa24380771bf46dc2301172a9cfc7043c7357cbc8c8e130e16fac2801653bdc6fdf869cbe8d8a6628cc0fe9bad2e392d1e75619a615f40dc70ccc42d80bc85ebd99479a44d1f4a2457eeb8deaa0092a7349c052948bf9e27ffd3619dd52e5008b8512137a3d5cfdcb2013f7c068043f5ab9bf8261209883b4eaca16248b5c7dd3349b0e86017df2aeaba592fea53fa7e26959639fed1370be58892e22a383ee59d7b8ca57e6ce4bd1895af40b79a6ebde0ddf946fafca8a2a030ad4ca6f86e94606af68942b + +SHAAlg = SHA384 +Msg = 344a458b48d68949ab0effd488443eb54ef367d74e005aec85402a0bb63bcf9ebd2f1b7b1f58f051e56faf46ab71f3def4a1801fc0d076f361dccbcd8a77f78fa929f1ac76985b89cc08f92ab91e680ad1e90d4ac7234b0e3eb3f925dc7713e8a041af64761f33bb09e0c6c7d9d304018dd2f6a18a7f4107c4ce9d5ad4c4896f +S = 364ad106da2cec6ce94e141e16af855f6d6e31ac6d7bdb2649695645a3d7f176a9b55f60b861776d49077dcfda4db42bb584767606f90de7289e71f188ff139b138bbd24f7a7f50192a137f2c648e19fe78a836bd2a01d31b248857cd29dbf3d1251c2d4cb339f2ff78add26304fbc3e44f8a2f04b47dc754b984169fba4a091d70f956074880c709ee849a05f8f2dcffee09b221078e98b6e28a965a2d44fcde72c6b27ff0a3def818d80aaba17915d37ad1d72755548310062e73da15a8d2544b311060b404683c00394666dc3a890f60ec9d85b2d0fca8a76fc96c4cfd0e3c4a83594957bac42866c395f8feab3b40c9bc9a675f47a1cd62fc43ebe0fff2bbd239130bbbe5257c5c3756044eb2190db7a309cddc4ef410e9abccd0f93158e0edfab2f0a50e80d814a428f61c531b2b747e64feb41523c5802a53c374f35df21abe67a877d062f56a001b47ee6ab571b0bbe7141e0b49cfdc97a15dc19138863d140cc772074c12b3d751985b7852fe76932be1f44a165f4fe58a341d28c3f86924defab4cf2458ba4cc3fb92558511ceee6d91c672b24b8727b867132bf6b8d7af714ab668f06f046448c1e854ae98e59cf21f2b7370c9378ee0eb34b031f9f4795057557773af0f7fc18ddeec7e95c2ccdd5f66ed224d08fbdfb37995e87f4df9691e499d77afaa8d5b93f3275c43f69edbe37672cf192f94509df0a4e9b + +SHAAlg = SHA384 +Msg = 6559ab58d486eb7cf6b3f0128f2140910136fca9142dc38ff60dd39581d771fdbd048c0fa62e9d692f0ed19786a66ae39abf626edb96528040d3931d8fbaa3d9d9a5caed43b2fd890db9026ccc81d5b3fa334beeb10ef579b45d470aafa6f986c025ae193578d485989ccbbae91849a82a78fd5121fd7222599337836a033dad +S = 8ab620c2433ac50e78c2585d0a576473f99c416dfb4875e211993e72bdae52621b110447bdf60ddcf5f573805a6d8d6bdaba2c81ebe0f89bbf1d24e513dd4c9589fcff972dcc5d65a095b4cfcf28cb07a6aa9e5d6aae69dbec9ce9558658508f21f4285100ec81aad794ed8315da42d844ebb1d18459ce6c6bbe207b6024b8e9757366103d872b3a9278828d5ffb9794ab99d0052938848dfe878451ebb1b33cb75ea634600ce09c9e6c200159bdc4b4d9e09eab23cdffa89752a4cf57a861df270b87561f079a05a6253321dcc87b3ed12b8f3a122cb59c04e152bcc16578a47b03983724630aded5805d365db5d5ed12cffecb7b163408576ed839f14ac2064da89b3194340aaf6a0a38fcbe9dc39920ec6dd57fe600cec08a662332abded6c93db9842d6232871956db68f4ddc52c1268aa46717e0ca5de1218229bcbd502d2b83060497faef3d94b9ef41f8d21cf2904801a82e15f6b5a8bddf5f315880587ba7a5c59a4e3b2f76b495ee23c9922fec2833d8a795e87d7bda1be1734ae721e935de69c407656d7f13d0b8c4b246380566bdeec0a6822a48c7556d54a7aa68ff71cb454af3db4a33b1ab7e33b530667e55f8f954d41d35e66f656efb2f0a71ed5098cb730b5bea0e2fd3ed334b1e45fa84028dcbcf3239024f6c90d4554b0818ff030aec80c851f41b1c7e8a6452886b87172ae221215fef55b82c4b1ebf3 + +SHAAlg = SHA384 +Msg = cc9f5709128a968c0e4987707ceffe0beb270ef228d320bffaf243120fc7c3d63738fdc6d074712f81d819f72c14fade1d89f80488f6eeac3254fe3f6efe26944b15146e0c233c46d8fe274bb3f00ea8ad14a70559033f5081b009bd1891b60b7000450aaee01d5a7a835975fbcb63ef0290c4fd85423a3550d00b94f7c89ac5 +S = 5eb3f9976905934674da09e09472f4a4de9cd236d3d60eb7d9ae4cc54ffd52c3314a93790c5a28837f245df760937bf495201035043d6f9e2eb7b06e0cf6d3c6dd477165d105ab43518da7b00b355db3065a1c20d4ce46489155d557c8645b383f35e037f7930394d5768a94241cb012d3a570f507de3721acef45f1fd4000fec7e973bad5141fe252e647f58cb54a8df1a73658c6cb925aa5cf93283fe345fb0924f4611bc02a2417fc2dab943ea3f063cde922c2c4d16970dcffb53a8c18469f476b58412e0ab92a8f2d19b81a22b46f9916da2cf42426f7261f0bc89ab4b2baed7174c37dc538592312787d20ea63bbb1647a84f85eff0ff3f7446ac74c4acc2650a85f4aba5b1ddda56211a5196f074c923167d59d8f8e3df51ce799129ce7e2c30ec8adf496f8805404234aa540726b0d142962a1ae344bf14829f658cc36762b8648b486930e83bb94e09e21fa0359f6b465e955b8c862be6b223cc1d55d26824577e2524cf29e701d88703bb8fb34d092aacb33805a77d41b5df4a877f28736ed539199e6f09c9075774907e62289a675c5a790e473e8d6aca020ba571da80e53f8b7ff497c85005c95a616365061a2e8cccad30c162c9a79e087a5f146806a15ce8e8697499ce74e5ab083509925531864ad7887655b580f8f3dcb7b15c06b176c3fe9bb0d96489422ff209c0dfaa090062f94b62787f54739855201 + +SHAAlg = SHA384 +Msg = b4762c4a9e465447872ef88f5703e2d0d700b82a7173dc8938b6903328615e9daebeb7836b7dda3735a9f73a5edb940939ae3139db7227c61f25d6a9ed9fffa8bb0c6f72539fdeebd78516c503185850b356fb93a591569b7f67e01314f59615e3489d40e014290b78a99d58cf22f44d4ce05f5f57372faf6166f69a25cde98b +S = 1e3bb2e60591658acecf06ce53c558edf7ce72b7de881466bd2e208bd5636eab3e4788bef3922d5e06c60aa23b26cd707062099f52e13b58c60b4d00059b489b2276f472ae0c6a5337a7bad04d18f09adfc8a67706584800c42c2ad494d9bdf44eb573f1d8f876a83b24e77b4259d99ed6cb7351c8cebd6d76bf0b14f7f68b4ecbbe0610d754eb579dea7ea29d421092b5192b2bfb94a4bc50d75dfa8e6184f9741db14e9c61b9b2bef7ecf6a2d3073b62fdbd13108ffdb4e87bef2cdc7dc648bbaf2aeb61b217543f0024ff2910b006d2f34118b7a49f5dfce5ec5f8fb4bdc81a61893dbc20f32303aa9e7ac49b8b02cf31e2fa3cb453252832c173ba2a2b88114be8ee03399b674a19b92987241bf8f6c7863954fc776c588ae3aa926d5cee3d1d264b73170834ffbedc30bc1c9b130849ed32051cc22b26995c50fc0a17a4e7eecb5de90189e1fedfb65e4bd3cec8f05ed535bbc36c9fe152120b702ff23d96543266ecf70d8c392f5f2c5c8b55a6570748f6d2b84616f613afe97ef46d5e2dd93d8d646e99c67bdf41bd3820e668665bc72ab37007551320a0971259182af59418fe5f3a104ea9fe80bce97d5a2c7843ba88a3c0b5ca681f134d96bfbc1d35f96414cdaa6e4c4e77a897d7c2f024eeb8191cb1336af78275656e32a48a14baadda38c59341bd83ecf868c29d652dfc41e0b3c1e99240ae3650e60933bd51 + +SHAAlg = SHA384 +Msg = dc88599736ffa5e20d95d4bf77975102c995bdd15d12d9fe927fa794156bccaf5ff439917f810af31ab3ae99b09849292022563d6fd891b7c5cc1455b8cdc085cdddde7a3ce6067ff4a8408bdff66a166722da2c39b644c04964dd421640c0742f2d9179f695612ea45ed2be8d197c71a67c8fc54412b9c026314a84b62d9624 +S = 16a83ce614a30c24cad1a911dbb26537ec9341eb301ef6fb0c1075a124153ba9d86da50326e50f6cacefed904d2b063ae96b7c0dc24fc78256210eecb0696b883b0fc3ed9187a37e57df28c6f2a5e6a601e27498e2d0fe43068b84f1eaf574b7da8c07c179264a5ce55983fb87e35f270b8e8af99933b700c298e4ab1209891eb2d85453166c52f1cbfc8424ad07c78096e5cdc286b7631e92cde53141abd4fec31010824a67f3cf432f65c59104eed6a6dffe7b1dc30ca5e1ed6ce7856e199382c9d3d5e1faab980b5f0067ba11bf22fd017e6f613a99ac5b6f087a8e963d25ec5d24f6f1f6bccdc1069d69f75039c8fb355e22f01cfc4e6a7b66310218c374e6d0186020027287a049fa8d3d07a27a57a3258b8f63147fc31b7e0d7034e1054ce746afd3e34c1bf0b957dd9aeb42155669349708aa32679d576492bea68addad7752b98fdc797367d1f8356639f22436db4d1bba624b106a187b9246673fd052c1e14f75ff8f615abaaceb892af29f50cc1c628c695f796105c86a16c5283de7e458b2ab57f9520b9cba98ae77a7239d9bd5052b79e8b826545d617ffd47e4ec97e04561614ea2ae3a72d8c2072d9b6970de7edc3c2eb563d2ffe90fbef0e4160a26ef40218577c6fd955be0f3a782fd0705bffe1cc56938cccc414164ddb501d15099c0deea77bc2be877192c87f4c67765839a3cd73103cb09d64deb0fd4 + +SHAAlg = SHA384 +Msg = caa5434b375a6e24dd128084448c49c4ee8c8d6dd28012fc0d62f8e2d3e049cfabbbd130dc6d30f7220e2d9aa6784d5e2daaa5d5906aeca56c2fd48c1a3d9aa1e212dcdd6b01acd9761de2d9cc58b60a75ec8e082bfa14a30f718ce39a32654ad5720d58cd5f0a554106474a9f74ab512f1bf00e8d78b37e5cf3c7ef3907cf50 +S = 9687464db14517c5cc747d891cd4b416b51642fb9f1e1919701f6587d55452ed5722f3b6a81035724c00ad603bfb7f68e1f89ee851cb0518d8a3fd48577290aee2c6bf564fca6135cf9bb71171e18d0dbd43e27c0c676618e6cbd7b5c8795c0dfffdcedf63f1fd50039bf6d540e48cb97fd6e2385e2c638f07322ac3b4ca39401a7b3634d72e63f121a19be42f6a7d698c68155686d6a5c22ba1b67b3c3768a215c3d1f8a4560bf4d55d0b20dc7837a3b20e9de949a2692b631a0a4c78a0893856c255e8000a9bf60b426a8c896ed8db39f2c6a3f4da206faf9a505634513bdef5003e20b9326d56355cca4f5609065c35a105b2a52bcbbea531001531a721050337afd39f059579c213bc7636c31457415c146ca5fe4bb2e4d8ac2966499b547c883c88c3bf62fc546513dfd583ee74acf66b082f9386850f82f61fc1432d6ea4086b4efd6cdaae7b8b0f864994045e2574b929f733998e63bcace367f1e1d3042df25b0a00cf5f82e0cfd42794aeeaf5e7683c7866b31a7133dd9fcc6658910c47d64f1f276aaf5302d21aa3e1b23f3068ad26fa6cac76dc13d4d3d51912f138a43d03dc2adb8bc6643a9374131d10929519788389cfc37c49d76226fb713f9af9b9ed614a31ce1cbe45a9f6dd2f4e83ab223df59b04b626ee3315f2b9cb754b9190db4e72984c04dc78291ba3b3007249f47b2c6d190a16cbac0c191e078c + +SHAAlg = SHA384 +Msg = eb1100bdd9bbe4a98b881a76193b242ac32ad6de8f4c14703494dd77377d897c54e74e671f210937eb473bf6ebce52ec975d2b1451ded4cc49d696d09ef13369c6e26ce22f69c63c26b58e23f9ed1b20580a530f01e771d49d9b054ae4063b7c08aa611851bca420047b1ae38ac1062cced857b9e78e71eef78c30cb53e32a1c +S = 167526abd3685906164bf8db5f81dd42466c2c9174c32fbc2d374851f1cc767b60d71382a696ae7861ff98bd7f221b765d78d59705a72f9a2c741c04c34014a3f6c99d5f92848f1490621e155e9d74ca10f374cca4a9a441f87a9b0b366bd302a56958836f0af48817c893ef7b55a1578c5f26ad6a8fb679e77131252aab0e472221ccb9630831f6f76999549b50c1500022cf72787ae49cdf54a75df27fcc2565e40ad6698ed89747ce6b474f9199feca40d0825d5ec0d00eff660ffceea61ee2b9c35ce6eeaaf3fdfffa37676a68ff39d719e8cb35a0a44609aff5129b698d04c71f20b559b7a5d7cc936ea53e510dd93cb8f3ea5f6b13a999f7b9a7bf0f69e9e5fff07588d07ae51986ca48e865ac5041d14917488a761673811d975b87b0ce81bd0f9dbae3b171cd3e5f2920b31cdd9a785fe66c61794aa2c046fd615eb3cd58b02e3a06f6c1898178b21f662d817169255ddc7c2c152670e5a34f46649816eaef626906763986a12f933353aee92fd0aaa15158ca7071aead096aa6c492acdbf91870731e29a9134a955b24b6811727aa7149a145668a449eb7030626251047d1e457e8c9a262b7b8ea35ef16a1fa4cde0ae9f122aa834fe59b0649c4f585ea86448c12b9a23e2c02a436b0cef2bbe16c73beb7d015d93fd5ba5ffaa963a342e81926c77b7b793800f95a8f500a73d1a7f5c136f9689202826249bb0fa4 + +SHAAlg = SHA384 +Msg = 0db1bbaecdf891653f22d78d18dd0bfbef3b8fdb4d6d5a9603ceeefac0238a95e220a0618d2f89a7fa6e781d12f6ad513c63eb4b73912b6e9ba392a0154aa1ab9144ace223228d079a4f996c0d4ed359b64360ae03b53bc9eb922aaa7f73f155c122c578b85a034ec4cd22c3306be7d906e2d74a2761f26f9aa29e602527e25d +S = 1c7891fcb9c5a272098e71c4a853e7e202a65ae9f0a04210683ab5a97e37be69a6017957bf863b3ba1f786f9bfde760ab45914bfce33f6da2c0f7eaee907c74ab5c918adcb3eba3c86c043e4eff61232ede44da0a255d1afc2f290a43f9350c8f345485e1fba799c21cc7ea826b9aebe52b8d9e42f3da3771ff66f196a272227b0af3e6daa97ddd11abfaabc725677445c6a38911ef0d796bacf6f7d3aac9fe5142ea8c2bc931bf341d6d5fe1053337c416440d369230cfa12b4dd61b9184210db6cad5f319dbdd6d49e5fa95770975c7c209f78dd375809c3a1d0b47ced5cb985ace4e7d6ff11bd4d89322d0aabcf06af6640ab59101a0f4cfbe6edd45267a9b8320b4f45ba402f69b2037882f15378fdfca8065ec511d28c47fad59114b09cdd070eeb4ceb3b610481517a591ed5d91f1a68447905f391b9a863b232333bbed0bf4c4a6a82636321686ce3125fbe4459bd468865337b3a1bc3ed6830dc332c5b1ef93b87247feb3adf592756b6760b5754aecdc2c19f10cddc2fcf725ae8d55604d0cf465f33b82eb7c4af92bce69ca35effaa07cc3b18bd2388dba38c7a5e02d7c62591e5567d1ad133272dc8bfc78a0d509918b8531667c936918071d4cc19bdd9e38e12e84028735f4ebf3cdf050658ab9f651f5834aa8aeafcb3af644227174f2e3997d92875a52fcf4019c0bc08bc89ae779fc420c29b7bc27fc204db + +SHAAlg = SHA384 +Msg = 190b56837ff29524be0ff2374d4cb9a3056facf3d6fa5659b94f9cf3e518954e46e69c292b18a37b3fffcab7ba40304ed87908758b27f02a6cc77f71f83b1de4f970186a423ef4479f8f02550cc4349025542fd8deb6a2f37482d6d2a4d387151aeff3d12c2a3090c807c299aba16d72d44948a4397113beb8c9ca9c50a77ae9 +S = 09b0e0655ee7027ad7da5b559d7c41600e9686e76da9524bfe3b1e90a508566ea07b565cc10d81ba76859bc594a47cb054266c2a953931486b94235d2af07a32f477e6567ad19a2194d717ddd0570d3cc4b0e357946e02098b2d54caf5ebfae2d9b7038b525dbd897276e306870d76eac2875b360daefbfb27e7490e48c48bb57cb497b77710b87f8395d8fca0caac40dee3dbf2184a1d7e050ba4d875843f5231e35d623153483c07ebb11b6f9905f6e58204d1fa516785ccd190ec947cb5aa445f917fe980dd9054afdf45b623d2e282ea82d87797751d37ee44a011463e28ee65d592354e63edfb18a9069fb9b2d37a5932c339429058b21df72d9f961c56097556c240879168bc8d3919a273ddd8793af12201eb26e1bd9bf191fd43779f71a783f0470fdcbbd88f82227ffab0499739f1cbadf3efb51414fe25a2fb95ed1dc171056255a988d235d38d910a9063d4ed9dbf7e0dbf06b23e7b15b89b35b79fec37fef9950dac4a05f04ea6183d8a744f66ea17d2fd593e8ecc11ee8066626adbf82e2f0da459c52778b469ac6418a0e0167b94d909d2acd228a1dccb9e0c2ebff77d238e511d16cec28873e248db48bde43e7453fd56a6b5946c0188a868c8d6cd62f61dbf51298d89e91ff509120164efd524a3b0698cfbd211aca6b77a99645a3957233f0f080f0c0da2573e373b7066e652ca25067b47ba04f76056c1 + +SHAAlg = SHA384 +Msg = 0cfb4ce89775cddc9b0d57850cb7a20a83782d42916d31d2540ed39647b49d435e592f4a539f32ff3a148efa5cb5ddbd42b11f98106fafca15d176e99fbb5e8414cf09063e7bc4dde736b6dca6065ddef8463cad92a6cd22f673bd8d4519585654e643e5011069c0c8fa37f391b30cb5ccbfeb48c01b7421207b1249e0d67503 +S = 349b238df2c671519d385d70b4d827a264ff657bedbb5ef13e7d266ebcb6b9be8afe176c2627addf8ae96082a12fc2f4d537fcae28bf79946685b1f94193cf9f0b6676b7d911901d61c8a3ca89c06361594f7c4f20c68c7974ab7f4a38cc5b7dd4658f49ffcc45ac13916d883745c9450b2e0340df7508fbec912845e3c97a9b64746cc21b93e1c4234ba6b0505bc80e23ce26d39467997dacce69311deff2d159dd84a6093ce225096e44cf7b85751b98cd8dee1fb9786dfc833b1331bc2a8bff96e6e2b914f02e2765dcfa12ac46b59439fba51797b794bf03f1b88d98f198650726a9e6675202f3c3782c64c355c193bd03e27c75e64b348a2b81be097f89fa2af901de3b558b2760acf752b217fe6d2ee6e20b0d64ca55101f70e73be41cae6fe6af508ab022b4add2782784f9728e84cfb39ac29bf7421f57cbcd121b95cc4f224751a7488b85d08e3de72af03836affb319fcfa29deea6362467c1f8ca42d8e8d3a6696ba831f6f9f916c21e9942ed0699e714835aff845655c64c9f029a6a40e0194aa1b6da1064b37645e5c8afa1693826ead419d025e4a8c6ffd5036b440e9cee9d9dcfb7fbf2bcdd90305568814b653a8e4190cf4f938f0d1e6464f8c6d0e13f9b3d88616d985d315ef0a4ac18e5f3d410158ab07284e645264915077f91eab9d0fb8081b428a84d48e1eb69cd0d3693106ad97d0f10aaeb8b45cf + +SHAAlg = SHA512 +Msg = fc5b9da74a8afff53e53f7558b69fcad8a924d948cace26f6eeea2d96e71d6493cefdeee55ca22de8c504c70e93db5e6b7811c50d9449ead5d28e25254ce9590e09b16918ebc7283e66792f84164b38ddbcd17ca2912fa4a6d3fc81c87828d680ee8ad569f67d52b752131b63ae7e0ea1dfca5cc251cdf90c5bdbbfeb095a81b +S = 6edfb6bfb20da2621e7ca0b8e13bfc3801d8bcb43ef3822be960b96a67d3e8afbbe2ef22e206b328ce99dd8f9758052d42a8ee93e16d8e160a50687e8ffce72d258610064ebde4c4cc2ab96c8e516ec2c1eed816c8e6ac537a0570c9eff81a38147bcd8f4747390676f9d755f613687ac59dbac14f69ca6e56a26727699fa11c200eb77339ead56fc6883acf9b92c6deb6f4d79f82ccdc493fedc6165f78c174adcf32941eeb237a4ae369dbbafb4553c98e413823f6f46da0d47d47a164b792aaf1324a8be4f01601bceb809f8c08f3458b1de2c6378cf93fb293212f6bd4a7b1fd1bfa14a1af29575a5ecc4281420179758e96b4465ec07f6cce4e5e5c2307d531e400e494725eb7dceb1d8dac1000d92f62f319534063c01aec9c6ec0c7675351f2883e462b0454db364f03700d6593c9be195fbea5800ebb81578c765409ac2c37f78fabe8783c5d324fa4dfabe4f192866e34037901615304237f08028a75f00a3904bea03219ef9dbfeb48d10ec59d481eb0429cfc9ae835cc578377e61023d5ceedfd3d0a05aceddb274c13782dda9299d6197519e14791208f8d86d63e0ab7fb42a1e14f8f37f49732e23d4b7d4f07cd0bc828649a12748e8d70f53683580bca87290992a349730370bbed6ed743e705759734872c54ff03c1a97037a7b9ee3c8c42d12c3ebe0c1bf3b42854d04a9177d1a24000bd388fa289fd77d5 + +SHAAlg = SHA512 +Msg = 2e414726a40aa70d167d36ef091a3f74d3ed6d3400664526f564f45bd3934bec9ef808319fca573306849864d438638ef826c90ab88ddd3253c17418e57e28798a7ca3ecc6431a5f254117c41e1a7c083d3fc54582c28d38046953f5d9017fd93af4a0c1e31ef879b9dd3a78af6792caea61e64d24ad5c204e831c5979c357f6 +S = 16211f28a757d0c46dfab2640816c671cf26b93c3a061ae00caf4bccf557bbdbc6064a2f6934db208b61e75e30cf13a02d15140664d33f3054aa9f3c2d7ef83e3c2f9f8a3d4cfcf511ab9daf32c312ab94f3f29f3402ff5a5f73fdeb30d9862e29921a16d2907874b7cb84da7b03c1a123f4d4f025f15f903c52bb32b9dc8e69b2742e5c2413c84fdb84e4fa9491122792a6feb3dd3d7b8c6bb98dd2292440eae8fd1593ccf8ccd822ea9de8f8a0f72db9ffb3a9d3b5fa545ed5e4a8bdf902e6979f709e590a052cdc2f08d445dba80d5984df6ed2727037e8c591e35902e6a973b8c57f6bf0f2809efbb079c24a45e36b610fd51b3e7cc449c85e3fc97e80f780fe0548c540f2c0e17b1cf1a82fb4a433bfa0fc01cf5046c498bd58fcc019129662b821ee971b47d0db433f8d5d870d37d24b0565efbf1af4fe19d8b662f36e68879d16530a662c10f506655d1d48a962788010a9701bc7ab7e61a8df8db1eb7e7dd6f78de308d29c75d26fe4c9825284836b6d5ecf8f7bcbe08091f4c99e4104a2a0b31486c6ce5c3e1d2180ab8e0cf46eec2be5866d2fc70217cb761e25697480e4542dd5f36f390d3295a4551479ac7c4eebe615b1a4850bdfca474fae8fe8326501b48fb60d5b650090fba50f9d8156949a88d30a25f01a06089807125f624cc10394c5f87893d120ffa6fcaf457425327811669791243ff5705d548247 + +SHAAlg = SHA512 +Msg = 27e622b223a02c2e2192d7ecea6fd95b803feae105b3cbccd9b5878b0344f91ed27f8ecbc3ff4d13a66a14e4fd452410a50adffeb87bd1a0b135eea4d1881aefc286ef477b5aba4f63dcc6b9b962deb733d80db2e513a83f65628e4f2d66afa54024cb8e11597ccca00d77d3e66b0f3873d0fb66562258933d63f2f2dd86bf2a +S = 2b97bd7c19dabdc8720990cff0995d1d70f9ecaae60b72e8d6515eef4fcb4f65beb753a81a5f3376b229302dcdff0ed5369d03802d6293a6557b6025d1da3001388cdf55548e84991858e91a0c604a6fc4b1390b88888b20de300ed48cd161f12ee7d90c16a4ed94ca45732cb6fe55b8a6b0ae78f8e530a78af6b4f7319149f3f49c455a4627b2918c8144767145f66c0e0ddb0f7a967b44b78823383b184ff1f864e1d676356bd284faadf93d2d6f88814d48487e573b4203ea9ccf435f15fb66bc059bfa26112b875a5cdebc57c9fd3e626104b8410e75e09b0c96ba360e4e051518d0c73ecbec1dd5b2a56c3accb3f6c0b2708abb1956b78532e125ffe4e33585b26b639f559c08dfe57f78364ed0948e44cdacd9de389868472745fa6b40d7bef41f6858402ae51ab085e7d613d2394d9cac67b3bdedfee6604dea7498668a0de3fe3ce34f310055ab220e17952ff5ea281e4af0e4ec3cfd994f03d36d1df2ca12d838b20a48010c223b1f109a5464439cdd8a98d1ffcb3008c07e60a87c69e6bfee7421c98a055c4b1387b436535862378fa01a336f5a12ca90f1e3b8ec5a0ecbcc5ebcb4d22c0eaeb91e904806a0bf01d57979a6b59dbd8b43ea82e1b08c2ba629e4156ea3edc9afe2c610a856c599ae47145b4fb295ac5cdd194bf95eddb363d909b387e1d935cbfe65fc74caa52c684fb6f166add6fbd790c111a983 + +SHAAlg = SHA512 +Msg = 163ceb6d647806ecb9486b7effbb7c4ccfdbab544032e90cfd8d61489b00675d292aab8708bab388fd32889284ecaf67675a5abf9091e0ea1b096bb6b09ef09310db65f5ed782efaff21d84d547a094ae85fb763757099c28ccddb2fe51e1635f4d77f80bcba5f8ae89dc377186d743d7973290798d6fcdc78611b7be287c08a +S = 531f083b17d1b1a922a9e523c9b9ded84afb99abe1fd30c1d14b72e856a7fd9ec0519f745737a0a86dfa64c399f55f4ff244ca0c0334eabd178a457ee48f90fda4f705dd0c09c021255facf4a8ff5fc184c8784f663ae73e6e5043b2d5bf74990e2ef96300c9b2abf4f4a4436f62cdf0d0f4bba250c1b9da9a223f24dfb895ebd645c22df6df3482d4ab4b2df0fd23dedf016bccb6a03dc167c978af90db109108dedb782180c8519c4b714835ce0966869c8b96c2104a8934fcba7f1eaf53a41db4d3bf9f5dd30139019d90e9aaee9c5ab837d7ab05cf73defbceb4b666775666f96237a3f618fd976095356019651770d8fcd0cc8ac23b7ff0b2555f770ce2c7da3c488058a148a44bba5bb236c44bfea7a7dd1bfb4f299053f8a67a29c963c0459780d2a92bf8cdee824c0bffa29f6e42261bc45197dfb9ae9fa4315e93c50d0916aa96ec0f4f64b55dabd3d101bbb9b15ff84b56f6a0ed0dc29e05bb6a6a36f6901ea380bc1ebcbb6caffd4d165266255a700bd22387a28a46f92f0bc2e05a1b502b572173fe10e711d3f49f33491e2f0ddf9170cf8a3763d5adfdc2e4eb310b2969f9a911b190e37379adb1488411cb6c73dffb358ffbaad7f9c092f752807bd78f5f9b0689482598f1fcc5ba57ab94d2c8f085adcf4521e3a67f26a6ffd0af644980cf6503bfd39302aaeb669907a3913332269664c951694b7ca7cd8f + +SHAAlg = SHA512 +Msg = da37727a270048a6e15fc798f698efe7f60e682776140b5eb201a4b77682f67b3e35003c9c737f54da6db48ee07a672259af2ce712b1e5c4a2c788675033233a31c31d9391a3be2c9475f1d21da34961eff443ef135ecb48791c019be2003c72fc094fe7cf380c1559a007ce75bd9d8c020634a940c5c3d27d2796b9f28f4b0a +S = b1171fe3bd3ba6422017f26f8f4abc4db38afa7af26ca877e738dd097c5b5fa1e0022cab6c0fd745b1c6bad0d853d9d1d94eaa8bc99e614818e05a35376d695f37f8472f1b405dd1c1cbdfd686556356976aea3f2ee2d9d979bafcf10cd450cf81f4e8c16f5e24d2f3b6b0f61d838205b345a0654f6067deb1d391c9a72d6ba3a1b083e09da72ed3701837eb033b8791f8536c77bb149f18218cf29a94662bce19447a5b8d07f98d16c62fbb5cacb2dca974b93399740161c6546e670334b3f8dd391a36ca1e01f664d6db246f62d3f8dab1a3596c409490e3a8c9baa37ef6062e527069b58d2cc6565836583f897f96355345ecc9e63366c0c09bb581cc985789fda205b127110890f3cc37ffcd0e1068f20d173bdca6b3df286ac63e059622e2bf7eefc6240e05b994dbe3ae6c0f06aa754eea4d073ec1d1c0905d37b194ea39bf5a7753f1b037fbef0a7c83e44060275c1233dce3e3cc6d9645b36732eef077a27e3b010ba81c39f4b65e2e094f3eca4768c9eee800efc32c0b5e89552b4d3ce4339329f85bbca25c6b45bfd15ee31299ec3fe5464bdd47eabcdf0f8f47ebeda8e9e71e1e59d77ba09563aef0ece5ead6e1ba4ff637807b1ed3b6218a5647370b138bb6366c94f153c7af26c91d0f99634274da16b736b9a4a7830f6d66a01863bf9b31692ff294bcd4da7b9f511097615d6f7f1e62a2e38be37a8a58dea9 + +SHAAlg = SHA512 +Msg = 532ef6006c7f7577736313f725fb872d0703a3759c422a55db25e34ae0a7ebc8e2734f7c654ddad4b1ae2cc182ae0cbc01270007f3181a35314714ec582ba0eac108f946b45cbef8d87a009cee759a73bf3fc0ab5312dbe0640f94e212262fb9d9351be6bf74c7ecd210b70fd116d65c2a930ee924fa165e5ec58bb4785f433d +S = 5ef119501a65a02e5a355b89ea2aa7f19358afa73f4dec4d289f55a9ee66db7a2031779f3651e453a5960590ad559f4d3e9d4acf865424a2bf12dfae00288b677716580f80c17b9fe32e9093d9c76b086e143a66c92f939e95cb766a2598dd4089aa73545ed4142152ef86436ab572f71a530e6a4417606f7c73b4da2c95f0349bb978d3b0c01614030bf421c0b4cc12fc7e9a8f2d08f3a5af349e0c525a1c2b8d333cc8fa4627f48872837f87af8975ec4909786fb22302fee081cecee509902a5d2a2138560dffe6df42c43e1d494ee93686347c55d786493160d04270da1b29ab6d60cc3516b8e4a709653c43628b2872a2127dc0e672078e8f4fada5c0d95badaacbc2bb2510f49bd0a1c56b1cf2ce087120fd8496f9aa902e320810f3dcf3132fadbb6bb0efbeaad7446aebefed507511736a61ee9350f455a91fbb3affdb6c6dca44ec6081fdfcfb657099412d440d91963060434807e3b5edc24e5245381e132683610cbb1578c8b84371a70650f1e31388233148a205d9634829d929508a2bdb04329726e7b7a352fb9dcd7567dbec53acb12b9e8492eee44673daed882c617a95d956061fb992c052d3177064d0ce5c8f5fc4964032ec59e6d2eb9a0b25ab176d60f540a48aad0059744466bfd4456e5a706e28f490374cd265d8e35ef3ad14b51985732cdea486b525681c090dc8a65cce9475eb1b9776582cbc16 + +SHAAlg = SHA512 +Msg = f5f1fe07d07671eaaf848a1bec9c154261c1599a2b2dfa48ad431eebd8c5cf74aa47a138f5e39443622f3befb56c1eb653005e45012797d1eee50aaef43ffc1e1baa59675fc49d28b342f4ec4529a00004429c8260c77fbb5063a2af9a5a85f14f036fbc947f5540a8a5fd3a233c64c77c6d5c7ace7779acdca52e13527e3497 +S = 77b57026516821bb369ba312d675ef53f7316ec7057a69bf75063858e04106ec9e7be3c9e1459b16d91df96d9d841d6aeedcfff0dc7cc71d8d46c67ffdd82deae72a34cae1680ee43d6c3af377f2954a6ad22077027ff8657692c07fce77ca83413fa9427a627ef46c0ff436daee1f13be7a32a98ddfc21747157e264094b58ba5fd9a525b551d116751484732b37504671b82b7ee81c141e0013ee612b77b268c2b26471eb0074c0508d86879b9cc442c40c1b31070bd3dc192dd3a6b603a9009baefef86baadc87e937be20e801afb5d0ba571b60afa022ddc2a57920d47c1764baa0b220cca2f395c6061316260a606c14f5e6e1d3174dd81e9ad132be032ae75793685ec3d211fc7417defe64822f8887248a04046f7a94161db7ec85bae27436d61693a2728bb191e79802e6a1017eb89bea32bcd09e26fdd3bc3ae03a4db6e3d414bea39d451830585247fb9b141434d602e946304a984905c4393def1c3fc1461412ce390c355f102601df8a5c4e2745fb547674b0224a5d134bae944e42752e8b84a668a36116095470cab6f67b14b1c65954ca8205f13134002a1970df883d8527a199553e6d3b51cd060f0f62911110a991f1bedd1b4ef838db1d2a185f9efbe2b1eb89b1dbd700d2cea9e2238a276a916da558d2216fc86a6f16d68fbcf6aa276fe18afb1873ae70717a613c12477b654ada4b407162df981769f + +SHAAlg = SHA512 +Msg = 2531b4eced1c68a57d7d58e4dd48706b147c88484ab2a2082af66c288ad50dcc4eb71db38970f56be6112ac14704547cab58144b555955fb2b64d1ed5cf9d7c845124c6b96b3f126b0c3e329521a683c75dbe8b174043a9770432231f30c17a7d3e849fa5a10e23da33a8c0347b334143aae0e64efdcda45c33c65db983552d0 +S = 67671ba93c3a4464b7a4e7ab31b96c091535993d02416b83560248e381b04e1e503ed883743fd46a541edf612f8eb5c7b1aef1ad14245f84e4d05a9a2b38f33af343df50642937b86ab6fc988b3f06880fd020775f76720db07176c86d4903aeb0280298939a3740bd31eba7d67f37399db1f4e8d825da5d0b85f153e73a6dfd6c8966e9432af54f6d64a73551d3bac4d6e73550dfab966a5451f31affbbdcf92598209ac399f6f2b2f4318b6998e74fe7390b9de340881f7a8b1488f524e021466d8933646998a23296fb5f307522936ed511677df0261769a497523caa9638ea08fcfec827dd4f19f21efe23b303db2d6319ea00f6af829ed0ea84a4b8075add342948f1b93345b439eb0a8902b6f113586967ae6b32510e1343b4b9973f27b8b7e68bdf0808a43fd37bac9f41c6c112ef33c258f7bcbdf25f1f34b5ee20ccadfd02aea47e45abd1ae4fcdfd2c8b3bfd788b1c87550418dfd222f2220be161154d914c02bd593a8b14401bccf6ab781b9238bcaa99e7d664ac650cf8ac9af7dcdbb9752b28d257a83081d0d51649863b4326cbf406faa111e824c797a753d6287226013056dbbeb74dbdb141c37181b7591aec5d40fd3a17e9a2d17ab7449a240c4b61d1fe777e5e3f1e320f2de482d25379b6e5adc38b17d6efb961a83410def403c3e923f323c97e364a09737da15f7756a9d05a81f648fff077a7284d8b + +SHAAlg = SHA512 +Msg = 442cad6f87951e5956c00e76792b92d5d100c08c31961c586f3b5383ba312c0b2df6bb00a5c8d82ed069cffc872059945e00cb44796c8e24a1dbcffa96d9775aa74f5e128103bbc54562e0d5dd7e24868f532061d24e1ed76110ce278f6f3b82dabdfe6cc24db165dc34a7c9224ddaf58d8025abe643b4b8d960b8d34bf95fc9 +S = 888b19966ff8ff90de121f9cc03a5136fe877a8b6ef54e97f44a53e1bc73eb6fd130a794331f7de343342c55c9e5d0f23eb1f61d16c1eda964b48f2e4f83f1b0d53b9635542e3eeae1bab0868ffbfc0a77b90c4667304a8fd9c7eaaff7003d486aa6162eb348fcde71ddc83b671ac1a2787bbe57d98fee77e993a144cc92ea9f85146cce02a9b7f4ea53fefdeacfafe75045c0ca8263ea78cadec91222828b5f1fcb2a115b6918307b4838baf36b7ae06530ae484945da34669683f857e716e6b51bddb1f22452db989b9eec563e3a3a8cb4aad45550c5810dc530756f04c5fcdf464911c6910495b76bcd0e8d5cb3ad3ea51c92ba70b5aeaf17a51c6d3d5df3bdf6fcf0fbab2d3c29dbda0ee1745474c9b2e5eac335ead14cdf7e36a8a088dcd24baa6e2fb66f1baaff4b2bb473955d1616cfc25e954a8287af2971dfdadfb8e98424917402e1587d18400e89ca5a12a5da93bf713e41928f60265f193363aaae73900d32170b1f9c236de19fd3985719b3778ac92134a3a1ef4579e430e587a0c868734e7b69beee1ae2bc09ed415f1c08656b5babb4615233fc0e175252af71638dd61f4d1ebcf879169933f99e74b260a9fda3580b88760fe4fd5a01e090ce2e026dd55a786e052502d98d5a782aeec4c58effcb629e940ee55b3e9b053021097dca502a33f0e7206844562f256de1af3eb2d8cba3611850c1d6dd0f2fef + +SHAAlg = SHA512 +Msg = 4d356602d7d12456746c3b9f30b627b9831156ab6d50dd88c5bf6a93cf6479a60c85cbd5566b144e2c65f5834a0f298c7cd303c6b5b118c15b3c3959e6e5a422a97c7a0aeff474394a67d23c28599563a741ee67ab46f6502d469f96d61ceb87cc235ce8ccf6abdf797abd11f31fd207ac6200d67797e0ffe2e58794c692b79c +S = 504f792fc1f28cee89883ea5fe70b5108be16ccb30e3dcee487db5d5b4284c837bc02bdd9fa99f1d54580852c5499e2f0042692844264f06ef188e4f9a96592b6661e7d164ef60ac4295f9fa237bd2a8efdabc3ae7545bcd103bc0563a05633481e1f1236c9c24873243bc7818ffdc77d007d49930f7d0f193107168dfc8d3075afceffcdbc5932a0615969c0eb631c551c3f5acc6027fe0ba33af57e001587a9d40b2f4c2c07d01d2868ffd37b74362c3785b011ff936f571be3afbdbc564cc9a036815551d56c7d4544503295acd2c33e5510617335445bc6f1bb58aeb2ff062bab79ec47a695cd1d591d06ee332695c036b38a123876b84cf019524238a0f3440f01701e7eaf151f7e89af109105256089bc076c4c2dc6eb3941255e02f741de1c2197fbd84ec619be8d13d76109f08ca587b37c42ca12c88b639bc4e9d9e1055a11260092293f61a73663e8028d3d73bf9fdb014a2c9696d7b9a1bf94a7d94b2012bfcf30c48ef4913c32a7847adc79073088a14195afbf64d34a9ea7cc2599e2cd5d138dd8266ac3e64261630e899860af5cc1045ec1fca551968a83a518e1321266841c1f3f24c0ddb7b288f056a8504cbce8205a35cb0ddc4720f1199e6cb22f782c1232307ce29e425cd92a5410b54052d38add1d9690f1fc3a9a9b5014685464d61aca9b0a6602756e5a9bfbac98ea53e5a3d8e883c251763c709ce diff --git a/test/vectors/vector_utils.c b/test/vectors/vector_utils.c new file mode 100644 index 000000000..46d5bd34d --- /dev/null +++ b/test/vectors/vector_utils.c @@ -0,0 +1,611 @@ +#include "vector_utils.h" + +#if defined(_WIN32) || defined(__linux__) + +#include +#include + +#include "third_party/unity/unity.h" + +static void hex_to_uint8(const char hex_str[2], uint8_t* num) +{ + *num = 0; + + if (hex_str[0] >= '0' && hex_str[0] <= '9') + { + *num += (hex_str[0] - '0') << 4; + } + else if (hex_str[0] >= 'A' && hex_str[0] <= 'F') + { + *num += (hex_str[0] - 'A' + 10) << 4; + } + else if (hex_str[0] >= 'a' && hex_str[0] <= 'f') + { + *num += (hex_str[0] - 'a' + 10) << 4; + } + else + { + TEST_FAIL_MESSAGE("Not a hex digit."); + } + + if (hex_str[1] >= '0' && hex_str[1] <= '9') + { + *num += (hex_str[1] - '0'); + } + else if (hex_str[1] >= 'A' && hex_str[1] <= 'F') + { + *num += (hex_str[1] - 'A' + 10); + } + else if (hex_str[1] >= 'a' && hex_str[1] <= 'f') + { + *num += (hex_str[1] - 'a' + 10); + } + else + { + TEST_FAIL_MESSAGE("Not a hex digit."); + } +} + +static void hex_to_data(const char* hex_str, uint8_t* data, size_t data_size) +{ + size_t i = 0; + + TEST_ASSERT_EQUAL_MESSAGE(data_size * 2, strlen(hex_str) - 1, "Hex string unexpected length."); + + for (i = 0; i < data_size; i++) + { + hex_to_uint8(&hex_str[i * 2], &data[i]); + } +} + +static char line[16384]; + +ATCA_STATUS read_rsp_match_value(FILE* file, const char* name, const char* match) +{ + char* str = NULL; + size_t name_size = strlen(name); + + do + { + str = fgets(line, sizeof(line), file); + if (str == NULL) + { + continue; + } + else + { + size_t ln = strlen(line); + if (ln > 0 && line[ln - 2] == '\r') + { + line[ln - 1] = 0; + } + } + + if (memcmp(line, name, name_size) == 0) + { + str = &line[name_size]; + } + else + { + str = NULL; + } + } + while (str == NULL && !feof(file)); + + if (str != NULL) + { + if (0 == strcmp(str, match)) + { + return ATCA_SUCCESS; + } + } + + return ATCA_GEN_FAIL; +} + +ATCA_STATUS read_rsp_hex_value(FILE* file, const char* name, uint8_t* data, size_t data_size) +{ + char* str = NULL; + size_t name_size = strlen(name); + + do + { + str = fgets(line, sizeof(line), file); + if (str == NULL) + { + continue; + } + else + { + size_t ln = strlen(line); + if (ln > 0 && line[ln - 2] == '\r') + { + line[ln - 1] = 0; + } + } + + if (memcmp(line, name, name_size) == 0) + { + str = &line[name_size]; + } + else + { + str = NULL; + } + } + while (str == NULL && !feof(file)); + if (str == NULL) + { + return ATCA_GEN_FAIL; + } + hex_to_data(str, data, data_size); + + return ATCA_SUCCESS; +} + +ATCA_STATUS read_rsp_int_value(FILE* file, const char* name, char* found, int* value) +{ + static char line[2048]; + char* str = NULL; + size_t name_size = strlen(name); + + do + { + str = fgets(line, sizeof(line), file); + if (str == NULL) + { + continue; + } + else + { + size_t ln = strlen(line); + if (ln > 0 && line[ln - 2] == '\r') + { + line[ln - 1] = 0; + } + } + + if (line[0] == '[' && NULL != found) + { + char * eq = strstr(line, " = "); + if (NULL != eq) + { + str = eq + 3; + *eq = '\0'; + found = &line[1]; + } + } + else if (memcmp(line, name, name_size) == 0) + { + str = &line[name_size]; + } + else + { + str = NULL; + } + } + while (str == NULL && !feof(file)); + + if (str == NULL) + { + return ATCA_GEN_FAIL; + } + *value = atoi(str); + + return ATCA_SUCCESS; +} + +static FILE * g_rsp_file; +static void * g_rsp_ctx; + +ATCA_STATUS open_vectors_file(const char * path) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + + if (NULL != g_rsp_file) + { + (void)fclose(g_rsp_file); + g_rsp_file = NULL; + } + + if (NULL != (g_rsp_file = fopen(path, "r"))) + { + status = ATCA_SUCCESS; + } + else + { + status = ATCA_GEN_FAIL; + } + + return status; +} + +void close_vectors_file(void) +{ + if (NULL != g_rsp_file) + { + (void)fclose(g_rsp_file); + g_rsp_file = NULL; + } + if (NULL != g_rsp_ctx) + { + free(g_rsp_ctx); + g_rsp_ctx = NULL; + } +} + +void free_vector(void * ptr) +{ + if (NULL != ptr) + { + free(ptr); + } +} + +ATCA_STATUS load_cmac_vector(cmac_vector ** vector) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + cmac_vector * v = NULL; + + do + { + int count = 0; + int klen = 0; + int mlen = 0; + int tlen = 0; + + if (NULL == g_rsp_file || NULL == vector) + { + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Count = ", NULL, &count))) + { + /* End of file */ + *vector = NULL; + status = ATCA_SUCCESS; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Klen = ", NULL, &klen))) + { + break; + } + if (0 > klen) + { + status = ATCA_GEN_FAIL; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Mlen = ", NULL, &mlen))) + { + break; + } + if (0 > mlen) + { + status = ATCA_GEN_FAIL; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Tlen = ", NULL, &tlen))) + { + break; + } + if (0 > tlen) + { + status = ATCA_GEN_FAIL; + break; + } + + size_t vsize = sizeof(cmac_vector_info) + (size_t)(klen + tlen) + (size_t)((0 == mlen) ? 1 : mlen); + if (NULL != (v = malloc(vsize))) + { + v->meta.count = count; + v->meta.klen = klen; + v->meta.mlen = mlen; + v->meta.tlen = tlen; + v->meta.key = v->data; + v->meta.mac = &v->data[klen]; + v->meta.msg = &v->data[klen + tlen]; + } + else + { + status = ATCA_ALLOC_FAILURE; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_hex_value(g_rsp_file, "Key = ", v->meta.key, klen))) + { + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_hex_value(g_rsp_file, "Msg = ", v->meta.msg, (0 == mlen) ? 1 : mlen))) + { + break; + } + + if (ATCA_SUCCESS == (status = read_rsp_hex_value(g_rsp_file, "Mac = ", v->meta.mac, tlen))) + { + *vector = v; + } + } + while (false); + + if (ATCA_SUCCESS != status && NULL != v) + { + free(v); + } + + return status; +} + + +ATCA_STATUS load_hmac_vector(hmac_vector ** vector) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + hmac_vector * v = NULL; + + do + { + int count = 0; + int klen = 0; + int tlen = 0; + + if (NULL == g_rsp_file || NULL == vector) + { + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Count = ", NULL, &count))) + { + /* End of file */ + *vector = NULL; + status = ATCA_SUCCESS; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Klen = ", NULL, &klen))) + { + break; + } + if (0 > klen) + { + status = ATCA_GEN_FAIL; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Tlen = ", NULL, &tlen))) + { + break; + } + if (0 > tlen) + { + status = ATCA_GEN_FAIL; + break; + } + + if (NULL != (v = malloc(sizeof(hmac_vector_info) + 128U + (size_t)klen + (size_t)tlen))) + { + v->meta.count = count; + v->meta.klen = klen; + v->meta.tlen = tlen; + v->meta.mlen = 128U; + v->meta.key = v->data; + v->meta.mac = &v->data[klen]; + v->meta.msg = &v->data[klen + tlen]; + } + else + { + status = ATCA_ALLOC_FAILURE; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_hex_value(g_rsp_file, "Key = ", v->meta.key, klen))) + { + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_hex_value(g_rsp_file, "Msg = ", v->meta.msg, 128U))) + { + break; + } + + if (ATCA_SUCCESS == (status = read_rsp_hex_value(g_rsp_file, "Mac = ", v->meta.mac, tlen))) + { + *vector = v; + } + } + while (false); + + if (ATCA_SUCCESS != status && NULL != v) + { + free(v); + } + + return status; +} + +ATCA_STATUS load_sha_vector(sha_vector ** vector, size_t digest_size) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + sha_vector * v = NULL; + + do + { + int len_bits = 0; + size_t len = 0; + + if (NULL == g_rsp_file || NULL == vector) + { + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "Len = ", NULL, &len_bits))) + { + /* End of file */ + *vector = NULL; + status = ATCA_SUCCESS; + break; + } + if (0 > len_bits) + { + status = ATCA_GEN_FAIL; + break; + } + else + { + len = (size_t)(len_bits == 0 ? 1 : len_bits / 8); + } + + if (NULL != (v = malloc(sizeof(sha_vector_info) + digest_size + len))) + { + v->meta.len = len_bits / 8; + v->meta.digest = v->data; + v->meta.msg = &v->data[digest_size]; + } + else + { + status = ATCA_ALLOC_FAILURE; + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_hex_value(g_rsp_file, "Msg = ", v->meta.msg, len))) + { + break; + } + + if (ATCA_SUCCESS == (status = read_rsp_hex_value(g_rsp_file, "MD = ", v->meta.digest, digest_size))) + { + *vector = v; + } + + } + while (false); + + if (ATCA_SUCCESS != status && NULL != v) + { + free(v); + } + + return status; +} + +ATCA_STATUS load_aes_gcm_vector(aes_gcm_vector ** vector) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + aes_gcm_vector * v = NULL; + + do + { + int len_bits = 0; + size_t len = 0; + + + + } + while (false); + + +// [Keylen = 128] +// [IVlen = 96] +// [PTlen = 0] +// [AADlen = 128] +// [Taglen = 128] + return status; +} + +typedef struct +{ + /* Expected to be 0x03 or 0x10001*/ + int e; + /* Maximum private key size */ + uint8_t n[4096 / 8]; +} rsa_ctx; + +ATCA_STATUS load_rsa_vector(rsa_vector ** vector, size_t mod, char * hash_alg) +{ + ATCA_STATUS status = ATCA_BAD_PARAM; + rsa_vector * v = NULL; + rsa_ctx * ctx = NULL; + + do + { + int len_bits = 0; + size_t len = mod / 8; + + if (NULL == g_rsp_file || NULL == vector) + { + break; + } + + if (NULL != g_rsp_ctx) + { + ctx = (rsa_ctx*)g_rsp_ctx; + } + else + { + /* Maximum private key size */ + if (NULL != (g_rsp_ctx = malloc(sizeof(rsa_ctx)))) + { + memset(g_rsp_ctx, 0, sizeof(rsa_ctx)); + } + else + { + status = ATCA_ALLOC_FAILURE; + break; + } + } + + if (NULL != (v = malloc(sizeof(rsa_vector_info) + 128U + len))) + { + v->meta.mlen = 128U; + v->meta.msg = v->data; + v->meta.sig = &v->data[128]; + } + else + { + status = ATCA_ALLOC_FAILURE; + break; + } + + if (0 == ctx->e) + { + if (ATCA_SUCCESS != (status = read_rsp_hex_value(g_rsp_file, "n = ", ctx->n, len))) + { + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_int_value(g_rsp_file, "e = ", NULL, &ctx->e))) + { + break; + } + } + + if (ATCA_SUCCESS != (status = read_rsp_match_value(g_rsp_file, "SHAAlg = ", hash_alg))) + { + break; + } + + if (ATCA_SUCCESS != (status = read_rsp_hex_value(g_rsp_file, "Msg = ", v->meta.msg, len))) + { + break; + } + + if (ATCA_SUCCESS == (status = read_rsp_hex_value(g_rsp_file, "S = ", v->meta.sig, len))) + { + *vector = v; + } + + } + while (false); + + if (ATCA_SUCCESS != status && NULL != v) + { + free(v); + } + + return status; +} + + +#endif diff --git a/test/vectors/vector_utils.h b/test/vectors/vector_utils.h new file mode 100644 index 000000000..4b062b8d0 --- /dev/null +++ b/test/vectors/vector_utils.h @@ -0,0 +1,170 @@ +/** + * \file + * \brief Common Utilities for working with NIST Vector Files + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ + +#ifndef NIST_VECTOR_UTILS_H +#define NIST_VECTOR_UTILS_H + +#include "vectors_config_check.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) || defined(__linux__) + +#include +#include + +#include "atca_status.h" + +/* General Utilities */ +ATCA_STATUS read_rsp_hex_value(FILE* file, const char* name, uint8_t* data, size_t data_size); +ATCA_STATUS read_rsp_int_value(FILE* file, const char* name, char * found, int* value); +ATCA_STATUS read_rsp_match_value(FILE* file, const char* name, const char* match); + +ATCA_STATUS open_vectors_file(const char * path); +void close_vectors_file(void); + +void free_vector(void * ptr); + +/* ------------- CMAC Vector Support ------------- */ + +typedef struct +{ + int count; + int klen; + int mlen; + int tlen; + uint8_t * key; + uint8_t * msg; + uint8_t * mac; +} cmac_vector_info; + +typedef struct +{ + cmac_vector_info meta; + uint8_t data[]; +} cmac_vector; + +ATCA_STATUS load_cmac_vector(cmac_vector ** vector); + +/* ------------- HMAC Vector Support ------------- */ + +typedef struct +{ + int count; + int klen; + int tlen; + int mlen; + uint8_t * key; + uint8_t * msg; + uint8_t * mac; +} hmac_vector_info; + +typedef struct +{ + hmac_vector_info meta; + uint8_t data[]; +} hmac_vector; + +ATCA_STATUS load_hmac_vector(hmac_vector ** vector); + +/* ------------- SHA Vector Support ------------- */ + +typedef struct +{ + int len; + uint8_t * msg; + uint8_t * digest; +} sha_vector_info; + +typedef struct +{ + sha_vector_info meta; + uint8_t data[]; +} sha_vector; + +ATCA_STATUS load_sha_vector(sha_vector ** vector, size_t digest_size); + + + +/* ------------- AES-GCM Vector Support ------------- */ + +typedef struct +{ + int count; + int klen; + int ivlen; + int ptlen; + int ctlen; + int aadlen; + int taglen; + uint8_t * key; + uint8_t * iv; + uint8_t * pt; + uint8_t * ct; + uint8_t * aad; + uint8_t * tag; +} aes_gcm_vector_info; + +typedef struct +{ + aes_gcm_vector_info meta; + uint8_t data[]; +} aes_gcm_vector; + +ATCA_STATUS load_aes_gcm_vector(aes_gcm_vector ** vector); + + +/* ------------- RSA Vector Support ------------- */ + +typedef struct +{ + + uint8_t * n; + int e; // Expected to be 0x03 or 0x10001 + int mlen; + uint8_t * msg; + uint8_t * sig; +} rsa_vector_info; + +typedef struct +{ + rsa_vector_info meta; + uint8_t data[]; +} rsa_vector; + +ATCA_STATUS load_rsa_vector(rsa_vector ** vector, size_t mod, char * hash_alg); + + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* NIST_VECTOR_UTILS_H */ diff --git a/test/vectors/vectors_config_check.h b/test/vectors/vectors_config_check.h new file mode 100644 index 000000000..52b18663b --- /dev/null +++ b/test/vectors/vectors_config_check.h @@ -0,0 +1,123 @@ +/** + * \file + * \brief Vector Enablement Configurations + * + * \copyright (c) 2015-2020 Microchip Technology Inc. and its subsidiaries. + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip software + * and any derivatives exclusively with Microchip products. It is your + * responsibility to comply with third party license terms applicable to your + * use of third party software (including open source software) that may + * accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED + * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, + * SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE + * OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF + * MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE + * FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL + * LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED + * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR + * THIS SOFTWARE. + */ +#ifndef VECTORS_CONFIG_CHECK_H +#define VECTORS_CONFIG_CHECK_H + +/* Base Configuration Data */ +#include "atca_config_check.h" + +#if ATCA_CA_SUPPORT +#include "calib/calib_config_check.h" +#endif + +#if ATCA_TA_SUPPORT +#include "api_talib/test_talib_vectors.h" +#endif + +/* Vector Configurations */ + +#ifndef TEST_VECTOR_EC_P224_EN +#define TEST_VECTOR_EC_P224_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_EC_P256_EN +#define TEST_VECTOR_EC_P256_EN (CALIB_ECC_SUPPORT || TALIB_EC_P256_EN) +#endif + +#ifndef TEST_VECTOR_EC_P256K1_EN +#define TEST_VECTOR_EC_P256K1_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_EC_BP256_EN +#define TEST_VECTOR_EC_BP256_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_EC_P384_EN +#define TEST_VECTOR_EC_P384_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_EC_P521_EN +#define TEST_VECTOR_EC_P521_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_EC_25519_EN +#define TEST_VECTOR_EC_25519_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_ED_25519_EN +#define TEST_VECTOR_ED_25519_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_ED_25519CTX_EN +#define TEST_VECTOR_ED_25519CTX_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_ED_25519PH_EN +#define TEST_VECTOR_ED_25519PH_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_RSA_PSS_EN +#define TEST_VECTOR_RSA_PSS_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_RSA_1024_EN +#define TEST_VECTOR_RSA_1024_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_RSA_2048_EN +#define TEST_VECTOR_RSA_2048_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_RSA_3072_EN +#define TEST_VECTOR_RSA_3072_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_RSA_4096_EN +#define TEST_VECTOR_RSA_4096_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_AES_128_EN +#define TEST_VECTOR_AES_128_EN (CALIB_AES_EN || TALIB_AES_128_EN) +#endif + +#ifndef TEST_VECTOR_AES_256_EN +#define TEST_VECTOR_AES_256_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_SHA2_256_EN +#define TEST_VECTOR_SHA2_256_EN DEFAULT_ENABLED +#endif + +#ifndef TEST_VECTOR_SHA2_384_EN +#define TEST_VECTOR_SHA2_384_EN DEFAULT_DISABLED +#endif + +#ifndef TEST_VECTOR_SHA2_512_EN +#define TEST_VECTOR_SHA2_512_EN DEFAULT_DISABLED +#endif + +#endif /* VECTORS_CONFIG_CHECK_H */ diff --git a/third_party/CMakeLists-mbedtls.txt.in b/third_party/CMakeLists-mbedtls.txt.in index cf55559a9..3e03d2a5d 100644 --- a/third_party/CMakeLists-mbedtls.txt.in +++ b/third_party/CMakeLists-mbedtls.txt.in @@ -4,12 +4,13 @@ project(mbedtls-download NONE) include(ExternalProject) ExternalProject_Add(mbedtls - GIT_REPOSITORY https://github.com/ARMmbed/mbedtls.git - GIT_TAG mbedtls-2.16.6 - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../third_party/mbedtls" + URL "https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v2.28.4.tar.gz" + URL_HASH "SHA256=578c4dcd15bbff3f5cd56aa07cd4f850fc733634e3d5947be4f7157d5bfd81ac" + SOURCE_DIR "${CMAKE_BINARY_DIR}/downloaded/mbedtls" BINARY_DIR "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" -) \ No newline at end of file + DOWNLOAD_EXTRACT_TIMESTAMP false +) diff --git a/third_party/CMakeLists-wolfssl.txt.in b/third_party/CMakeLists-wolfssl.txt.in index 12f0390d9..339e55825 100644 --- a/third_party/CMakeLists-wolfssl.txt.in +++ b/third_party/CMakeLists-wolfssl.txt.in @@ -4,12 +4,13 @@ project(wolfssl-download NONE) include(ExternalProject) ExternalProject_Add(wolfssl - GIT_REPOSITORY https://github.com/wolfSSL/wolfssl.git - GIT_TAG v4.3.0-stable - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../third_party/wolfssl" - BINARY_DIR "" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" -) \ No newline at end of file + URL "https://github.com/wolfSSL/wolfssl/archive/refs/tags/v4.8.1-stable.tar.gz" + URL_HASH "SHA256=50db45f348f47e00c93dd244c24108220120cb3cc9d01434789229c32937c444" + SOURCE_DIR "${CMAKE_BINARY_DIR}/downloaded/wolfssl" + BINARY_DIR "" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + DOWNLOAD_EXTRACT_TIMESTAMP false +)